[英]How do I assign a function to a variable?
我正在創建一個文字游戲,所以這是我遇到的問題:
def characters():
def assassin():
dmg = 150
health = 500
print "Do you want to become an assassin ?"
choice = raw_input("> ")
if choice in ["Yes", "yes", "YES"]:
print "So you said %s about becoming an assassin" % choice
choice = assassin() # Error
else:
print "Templar detected!"
因此,我想將選擇變量設置為assassin()函數,然后我想將assassin()函數的屬性復制到選擇變量,但是我得到的只是錯誤,提示“未定義刺客”。
那么,我該怎么做呢?
您有兩個問題:
if choice == "Yes" or "yes" or "YES":
不會執行您認為的操作。
在Python中, x or y
總是基於x
和y
的值返回True
或False
。 Python解釋器解釋的行與英語解釋的行不同。
if (choice == "Yes") or ("yes") or ("YES")
含義相同。 由於非空字符串的布爾值為True
,因此與if (choice == "Yes") or True or True
。 的第一部分- (choice == "Yes") or True
以True
作為or
的參數,因此它(以及整行)將始終為True
。
第二個問題是您誤解了函數的工作方式。 首先,這些功能都不起作用。 函數是為某些代碼命名的一種方式,如果您多次調用它,則會使程序更短。
其次,在函數外部無法訪問函數定義中的變量(以及在其他函數內部定義的函數)。 這就是為什么變量assassin
不在characters
函數定義之外的原因。
刺客功能除了為變量dmg和health分配一些值外沒有做任何其他事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.