我无法在hold_x
变量中使用hold_y
,fold_x
和fold_y
,tav
。你知道如何解决这个问题吗?
我尝试了hold_mozgat(0,0).hold_x
和hold_mozgat(0,0).hold_y
,但没有成功。
def hold_mozgat(v, h):
global x1, y1
x1, y1 = x1 + v, y1 + h
can1.coords(hold, x1, y1, x1 + 90, y1 + 90)
global hold_x, hold_y
hold_x, hold_y = x1 + 50, y1 + 50
print('A Hold szélessége : ' + str(x1 + 50) + ' Hosszúsága : ' + str(y1 + 50))
return hold_x, hold_y
def fold_mozgat(v, h):
global a1, b1
a1, b1 = a1 + v, b1 + h
can1.coords(fold, a1, b1, a1 + 200, b1 + 200)
global fold_x, fold_y
fold_x, fold_y = a1 + 100, b1 + 100
print('A Föld szélessége : ' + str(a1 + 100) + ' Hosszúsága : ' + str(b1 + 100))
return fold_x, fold_y
hx, hy = hold_mozgat.hold_x, hold_mozgat.hold_y
fx, fy = fold_mozgat.hold_x, fold_mozgat.fold_y
tav = int((sqrt(((fx - hx) ** 2) + ((fy - hy) ** 2))) - 150)
Label(keret, text='A Föld és Hold távolsága : ' + str(tav) + ' fényév', fg='red').pack(side=BOTTOM)
我尝试过:
def hold_mozgat(v=0, h=0):
global x1, y1
x1, y1 = x1 + v, y1 + h
can1.coords(hold, x1, y1, x1 + 90, y1 + 90)
hold_mozgat.hold_x = x1 + 50
hold_mozgat.hold_y = y1 + 50
print('A Hold szélessége : ' + str(x1 + 50) + ' Hosszúsága : ' + str(y1 + 50))
return hold_mozgat.hold_x, hold_mozgat.hold_y
def tavolsag():
hold_mozgat()
fold_mozgat()
fx, fy = fold_mozgat.fold_x, fold_mozgat.fold_y
hx, hy = hold_mozgat.hold_x, hold_mozgat.hold_y
tavolsag.tav = int((sqrt(((fx - hx) ** 2) + ((fy - hy) ** 2))) - 150)
return tavolsag.tav
Label(root, text='A Föld és Hold távolsága : ' + str(tavolsag.tav) + ' fényév', fg='red').pack(side=BOTTOM)
我相信,如果我给hold_mozgat(v,h):
提供默认值,它将起作用,但不起作用。该程序运行,但显示为Cannot find reference 'fold_x' in function
,运行程序时显示为gui <function tavolsag at 0x037C66E8>
。我在Google中查看了此错误提示,但找不到任何东西。