我是python的新手。这是我的问题的一个基本例子。
spam='spam'
def change():
spam='eggs'
change()
print(spam)
此代码会将“垃圾邮件”打印到控制台。有没有办法在不使用return或arguments的情况下完成这项工作。谢谢。
答案 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)