在Python中使用不同函数中的相同变量

时间:2015-09-26 18:44:05

标签: python function return

我试图使用返回功能,我是python的新手,但这是我似乎无法理解的事情之一。

在我的作业中,我必须将每个任务放在一个函数中,以便于阅读和理解,但是例如我在函数中创建一个随机生成的数字,然后我需要在不同的函数中生成相同的数字,我相信这可以做到的唯一方法是返回数据。 例如,我有一个生成随机数的函数:

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

但如果我需要使用变量' key'再一次在不同的函数中保存相同的随机数,它不会工作,因为它没有在新函数中定义。

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

def number():
    sum = key + 33

那么我如何返回数据(如果这是您需要使用的)以使其起作用?

2 个答案:

答案 0 :(得分:1)

return的用法表示你的方法将某些东西“返回”回叫它的东西。所以,你想要在你的方法中做的只是添加一个return(key):

# 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

调用generate时,请执行以下操作:

result_of_generate = generate()

如果您希望在数字方法中使用它,您实际上可以简单地执行此操作:

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

如果你必须返回总和,那么再次在方法中使用与generate方法类似的返回。

答案 1 :(得分: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返回密钥。