2015-09-18 85 views
-1

我已經想出了分配全局變量的兩種方法。分配全局變量V在Python中分配函數屬性

第一種方法爲屬性分配一個函數。

第二種方法更改全局變量名稱。

我將把這個實現成一個基於文本的冒險遊戲。

什麼方法最適合我的工作,爲什麼?

這是代碼。

# Method 1. Assigning attributes to function. 

def coin(): 
    print "You see a coin. Pick it up?" 

    choice = raw_input("> ") 

    if choice == "yes": 
     coin.amount = coin.amount + 1 
     print coin.amount 
    elif choice == "no": 
     print "No monies for you." 


# Method 2. Assigning global name within function. 

def coin2(): 
    global purse 
    print "You see a coin. Pick it up?" 

    choice = raw_input("> ") 

    if choice == "yes": 
     purse = purse + 1 
     print purse 
    elif choice == "no": 
     print "No monies for you." 

coin.amount = 0 
coin() 

purse = 0 
coin2() 
+0

那麼,怎麼回事? –

+0

我沒有經歷過這兩種方法之間的區別以及最常用的方法。正如我的文章所述,我想知道哪個是我的任務的最佳方法,爲什麼。 – user3200293

+0

他們都可以工作,所以你可以選擇一個使用你喜歡的。不過我更喜歡'全球'。 –

回答

2

也沒有。將硬幣金額作爲參數傳遞,然後返回修改後的值。現在你根本不需要全局變量或函數屬性。

def coin3(amount): 
    print "You see a coin. Pick it up?" 

    choice = raw_input("> ") 

    if choice == "yes": 
     amount += 1 
     print amount 
    elif choice == "no": 
     print "No monies for you." 
    return amount 

x = 0 
x = coin3(x)