2015-09-26 100 views
-2

我想要使用返回函數,我是新來的Python,但它是我似乎不明白的東西之一。在Python中的不同功能中使用相同的變量

在我的任務中,我必須把每個任務放在一個函數中,以便更容易閱讀和理解,但例如我在一個函數中創建一個隨機生成的數字,然後我需要在不同的函數中生成相同的數字,相信這可以做的唯一方法是通過返回數據。 比如這裏我有一個函數產生一個隨機數:

def generate(): 
    import random 
    key = random.randint(22, 35) 
    print(key) 

但是,如果我需要使用變量「鑰匙」又掌握着不同的功能相同的隨機數,它不會因爲它的工作沒有在新功能中定義。

def generate(): 
    import random 
    key = random.randint(22, 35) 
    print(key) 

def number(): 
    sum = key + 33 

那麼,如何返回數據(如果這是你需要使用的)它的工作?

+1

你提到如何在你的問題'return'中做到這一點。 –

+0

'return key'而不是'print(key)'和'sum = generate()+ 33'而不是'sum = key + 33' –

回答

0

您可以使用關鍵字global告訴你從外部作用域引用變量generate功能:

import random 
key = None 

def generate(): 
    global key 
    key = random.randint(22, 35) 
    print key 

def number(): 
    print key + 33 

# test 
generate() 
number() 

不過,我會建議避免這種從generate返回鍵代替。

1

return的用法指示你的方法把'返回'返回給任何稱之爲的東西。所以,你想例如在你的方法做的是簡單地增加一個回報(鍵):

# Keep your imports at the top of your script. Don't put them inside methods. 
import random 

def generate(): 
    key = random.randint(22, 35) 
    print(key) 
    # return here 
    return key 

當你調用生成,這樣做:

result_of_generate = generate()

如果你正在尋找在你的電話號碼的方法使用它,你其實可以簡單地這樣做:

def number(): 
    key = generate() 
    sum = key + 33 

如果你有返回的總和,話又說回來,利用該收益在性質類似的方法到生成方法。

相關問題