[英]I have an error: NameError: name 'GameDisplay' is not defined
[英]NameError: name 'a' is not defined... gives this error even after I have converted variable to global
我收到此錯誤,無法找到任何適當的原因或解決方案
def change_a():
global a
for i in ['O','X']:
if not(i==a):
a=i
break
這段代碼的目的是在 X 和 O 之間切換。
我得到的 output 是:
NameError: name 'a' is not defined.
我在 Python 3.9.0 中運行它
在比較(i==a)
時,變量a
尚未定義。 因此,您需要在此之前為a
提供一個值。 此外,正如 Shannarra 提到的,您可以在兩個字符之間切換變量:
a = 'X'
def change_a():
global a
a = 'O' if a == 'X' else 'O'
print(a)
change_a()
Output:
O
另外,請注意,使用全局變量被認為是不好的做法,因為它們使函數具有隱藏的(非顯而易見的、令人驚訝的、難以檢測和診斷的)副作用,導致復雜性增加,可能導致意大利面條式代碼。
如果您只想在這兩個字符之間切換變量,您可以:
a = 'O' if a == 'X' else 'X'
不需要 function、循環或全局變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.