如何从已定义的函数中重新赋值变量的值?

时间:2016-11-09 21:09:15

标签: python python-3.x

我是python的新手。这是我的问题的一个基本例子。

spam='spam'

def change():
    spam='eggs'

change()

print(spam)

此代码会将“垃圾邮件”打印到控制台。有没有办法在不使用return或arguments的情况下完成这项工作。谢谢。

2 个答案:

答案 0 :(得分:0)

global spam内添加def以定位在方法定义之外定义的变量,或更好,从方法的结果中指定一个新值:< / p>

spam = "spam"
def change(): return 'eggs'
spam = change() #spam now contains 'eggs'

但是,如果您传递列表或词典,修改方法内部的值确实会影响外部值,但这是一个不同的故事。如果您想尝试,请使用spam=["spam"]并在方法内spam[0] = 'eggs'。对于这种情况,在方法之外不需要全局变量或赋值。

答案 1 :(得分:0)

您可以执行以下操作:

spam='spam'

def change():
    global spam
    spam='eggs'

change()

print(spam)