如何在函数中创建或使用全局变量?
如果我在一个函数中创建一个全局变量,我如何在另一个函数中使用该全局变量?我是否需要将全局变量存储在需要访问的函数的局部变量中?
我花了几个小时在这里和其他地方阅读,以及尝试,但我并不真正理解我确信这是一个非常基本的概念:在不同的函数之间传递值(作为变量).
例如,我将一大堆值分配给一个函数中的列表,然后希望稍后在另一个函数中使用该列表:
list = []
def defineAList():
list = ['1','2','3']
print "For checking purposes: in defineAList, list is",list
return list
def useTheList(list):
print "For checking purposes: in useTheList, list is",list
def main():
defineAList()
useTheList(list)
main()
Run Code Online (Sandbox Code Playgroud)
根据我对函数参数的理解,我希望这样做如下:
然而,这显然是错误的理解.我的输出是:
For checking purposes: in defineAList, list is ['1', '2', '3']
For checking purposes: in useTheList, list is []
Run Code Online (Sandbox Code Playgroud)
所以,既然"回归"显然没有做我认为它做的事情,或者至少它没有像我认为的那样去做......它实际上做了什么?你可以告诉我,使用这个例子,我需要做什么来从defineAList()获取列表并在useTheList()中使用它?当我看到它们发生时,我倾向于更好地理解事物,但是我所看到的很多适当的参数传递的例子也使用了我不熟悉的代码,并且在弄清楚发生了什么的过程中,我我真的没有理解这个概念.我正在使用2.7.
ETA-在过去,提出类似的问题,有人建议我使用全局变量而不仅仅是本地变量.如果它在这里也是相关的 - 为了我正在上课的目的,我们不允许使用全局变量.
谢谢!
我有一个非常基本的问题.
假设我调用一个函数,例如,
def foo():
x = 'hello world'
Run Code Online (Sandbox Code Playgroud)
如何让函数以这样的方式返回x,我可以将它用作另一个函数的输入或者在程序体内使用变量?
当我使用return并在另一个函数中调用该变量时,我得到一个NameError.
我试图在程序中进一步更改变量.我在程序开始时声明了一个全局变量,我想在程序中更改不同函数中的变量.我可以通过再次声明函数内部的变量来做到这一点,但我想知道是否有更好的方法来做到这一点.下面是一些测试代码来解释我的意思.
ID = 'No'
project = ("Yep"+ID) # ID added with 'No' value which I later want to change
def pro():
ID = "YES"
print ID
def pro1(ID):
# I could declare project again to get this to work, but I would like to avoid this
print project # I want this to print with the new ID number.
if __name__ == '__main__':
pro()
pro1(ID)
Run Code Online (Sandbox Code Playgroud)
有任何想法,谢谢
我已经尝试了global变量,但是当我这样做时,项目变量仍然打印出YepNo而不是YepYES.我希望函数中的新变量pro改变变量中的project变量.