我需要在python中创建程序代码,使用简单版本从不同的子程序中使用定义的变量:
x = 'ham'
def a():
x = 'cheese'
def b():
print(x)
a()
b()
如何将全局变量x保存为奶酪而不是火腿?
答案 0 :(得分:0)
每当你在函数中改变一个全局变量时,你必须明确地声明你将它用作全局变量:
x = 1
def a():
global x
x = 4
def b():
print(x)
a()
b()
否则,a
只会创建一个隐藏全局的局部变量x
。
答案 1 :(得分:0)
我用子程序猜你的意思是功能吗?
您获得1而不是4的原因是因为x = 1
设置了全局变量(在全局范围内)。
当您在函数内部执行x = 4
时,它会创建一个 local 变量(在该函数的 local 范围内)。函数完成后,将丢弃局部变量。
当您致电b()
并尝试查找x的值时,没有本地变量x(在b的本地范围内),因此它使用< em> global 变量x,为1。
如果您希望a()
修改全局变量x,您必须选择:
1)您可以只显式修改全局变量
def a():
global x
x = 4
2)您可以返回本地变量并将其分配给全局(首选)
def a():
x = 4
return x
x = a()