使用来自不同子程序的变量

时间:2014-02-20 17:45:11

标签: python variables

我需要在python中创建程序代码,使用简单版本从不同的子程序中使用定义的变量:

x = 'ham'

def a():
    x = 'cheese'

def b():
    print(x)
a()
b()

如何将全局变量x保存为奶酪而不是火腿?

2 个答案:

答案 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()