내가 프로젝트에서 일하고 있어요 정의되지 않은이 오류는 나타나지 유지 :나가서 설명하자면 NameError : 전역 이름 '변수는'파이썬
class PRNG:
def __init__(self):
# parameters
# P-256 prime
self.p=115792089210356248762697446949407573530086143415290314195533631308867097853951
self.a=self.p-3
self.b=41058363725152142129326129780047268409114441015993725554835256314039467401291
self.E=curve(self.a,self.b,self.p)
self.E.n=115792089210356248762697446949407573529996955224135760342422259061068512044369
self.P=point(0,46263761741508638697010950048709651021688891777877937875096931459006746039284)
self.k=183521403747637560534595403690771364941493702673414885451510208165414833985
self.Q=mult(self.k,self.P,self.E)
self.t=bytes_to_int(os.urandom(32)) # initial seed
#print self.t
self.output_length=240
self.truncate_length=16
def function_attack(self, nbytes, predicted_state):
calls = ((nbytes*8-1)/self.output_length)+1
out = ''
for i in xrange(calls):
tP=mult(predicted_state,self.P,self.E)
s=tP.x
sQ=mult(s,self.Q,self.E)
r=sQ.x
r_out=r % (2**self.output_length)
self.t=s
out = out + int_to_bytes(r_out, self.output_length/8)
return out[:nbytes]
def function(self, nbytes):
calls = ((nbytes*8-1)/self.output_length)+1
out = ''
for i in xrange(calls):
tP=mult(self.t,self.P,self.E)
s=tP.x
sQ=mult(s,self.Q,self.E)
r=sQ.x
r_out=r % (2**self.output_length)
self.t=s
out = out + int_to_bytes(r_out, self.output_length/8)
return out[:nbytes]
첫 번째 방법은 별도의 파일에서 호출 및 출력이 항상되고있다 파이썬은 무엇을하고
File "C:\file1.py", line 32, in <module>
prng = PRNG()
File "C:\file_where_error_occurs.py", line 286, in __init__
for i in xrange(calls):
NameError: global name 'calls' is not defined
: (나는를 호출 지역 변수의 이름을 변경에 관계없이 경우) 다음?
로 프로그램을 실행보고 PRNG는 무엇입니까? 여기에 몇 가지 중요한 정보가 누락 된 것처럼 보입니다. 우리가 실행할 수있는 예제를 게시하고 동일한 오류를 줄 것입니다. –
그래서, 제가 아래 투표를 받았다고 봅니다. 나는 파이썬으로 프로그래밍하지 않았다.) 그러나 나는 투표를 닫는 것에 더 놀랐다. @CloseVoter. 이 질문에 불만이있는 이유는 무엇입니까? – Sebi
'print calls'를 사용하십시오. 당신은 놀랄 것입니다 ... – alfasin