我是python的新手。在下面的代码中,我声明了三个变量$ seq 5 | awk 'BEGIN { getline; print "BEGIN read", $0} {print "main read", $0 }'
BEGIN read 1
main read 2
main read 3
main read 4
main read 5
,TGt_x
和TGt_y
。当我尝试在TGt_z
函数中使用这些变量时,我得到compute
。为什么会这样?
Undefined reference error
答案 0 :(得分:0)
在Python中,您不使用这样的全局变量。将您的代码更改为:
def compute():
global TGt_z,TGt_x,TGt_y
//your code
答案 1 :(得分:0)
您需要在global
函数中调用compute
语句:
def compute():
global TGt_z, TGt_x, TGt_y #here
TGt_z = TGt_z + Vz
TGt_x = TGt_x + Vx
TGt_y = TGt_y + Vy
print("TGTx=============================",TGt_x)
print("TGTy=============================", TGt_y)
print("TGTz=============================",TGt_z)
Range = math.sqrt(pow(TGt_x, 2) + pow(TGt_y, 2) + pow(TGt_z, 2))
print("Range=============================",Range,"\n")
小例子:
>>> x = 5
>>> def compute():
... x+=5
...
>>> compute()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in compute
UnboundLocalError: local variable 'x' referenced before assignment
>>> def compute():
... global x
... x+=5
...
>>> compute()
>>> x
10
>>>