2012-11-22 5 views
1

파이썬 변수 범위에 문제가 있습니다. 이상 (여전히 방법 getIP 내부) 코드에서파이썬 범위 문제

def getIP(data,address): 
    header = Header.fromData(data,0); 
    arcount = header._arcount //at this point arcount is some non-zero number 

내가 arcount 제로 가능 여부를 확인하려면 :

... 
    elif firstRR._type==RR.TYPE_NS: 
    while(nscount!=0): 
     print "arcount: ",arcount //here it gives 0. why? 
     if(arcount!=0): 
      print "arcount isn't 0" 
     else: 
      print "can't reach header" 

그리고이 때이 인쇄, "헤더에 도달 할 수 없습니다" arcount가 0이 아니어야한다고 가정합니다. 왜 아크 노트를 보지 못하니? 감사합니다

+4

제외 된 코드의 다른 곳에서는 'arcount'를 수정하지 않습니까? 해당 코드를 게시하십시오 – inspectorG4dget

+2

'arcount'를 직접 수정하거나'header'을 수정하여 수정 중입니다. – LSerni

답변

1

왜냐하면 파이썬은 강력하게 타입 화되고, u'0'도 도 0과 같지 않기 때문입니다.