簡體   English   中英

如何為變量分配功能?

[英]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總是基於xy的值返回TrueFalse Python解釋器解釋的行與英語解釋的行不同。

if (choice == "Yes") or ("yes") or ("YES")含義相同。 由於非空字符串的布爾值為True ,因此與if (choice == "Yes") or True or True 的第一部分- (choice == "Yes") or TrueTrue作為or的參數,因此它(以及整行)將始終為True

第二個問題是您誤解了函數的工作方式。 首先,這些功能都不起作用。 函數是為某些代碼命名的一種方式,如果您多次調用它,則會使程序更短。

其次,在函數外部無法訪問函數定義中的變量(以及在其他函數內部定義的函數)。 這就是為什么變量assassin不在characters函數定義之外的原因。

刺客功能除了為變量dmghealth分配一些值外沒有做任何其他事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM