如何将变量作为参数传递给函数?
这是我的代码
def hello (arg):
global my_name
my_name = "tarek"
print("my name is " + arg)
hello(my_name)
这应该打印
my name is tarek
但它并没有给我一个NameError,尽管我将变量my_name声明为全局。
如果我在函数外部声明变量,那么它的效果很好,但是为什么在声明函数内部的变量时它不起作用?
答案 0 :(得分:1)
您必须在函数之外定义全局变量,然后您不需要在函数中再次定义它。以下代码将打印您想要的内容:
my_name = "tarek"
def hello(arg):
print("my name is " + arg)
hello(my_name)
答案 1 :(得分:1)
在调用函数之前没有变量my_name,因此没有任何内容可以传递给函数,从而产生错误。 在函数外定义变量,然后在函数内声明它是全局的,如果必须的话。
如果您希望my_name是全局的,则不需要将其传递给函数。只需在函数外部声明并指定它,然后将其声明为全局内部。
传递参数通常是因为你希望它是该函数的本地参数,然后我们通常在它被处理后返回它。对代码进行划分有助于调试。
答案 2 :(得分:0)
hello()
内的任何内容都无法在my_name
被调用时使hello()
存在。
答案 3 :(得分:0)
您的变量声明的范围限定在方法(闭包)内部,并且在您调用该闭包之前不会对该闭包进行求值,此时您会收到错误,因为该变量在该上下文中不存在。
如果我理解正确,您似乎想要这样做
def hello (arg):
global my_name
my_name = arg
print("my name is " + arg)
hello("tarek")