我已经阅读了关于python范围的内容,并在stackoverflow上浏览了这些问题,但我想澄清一下。
我正在为一个函数提取一段代码,从我习惯的它应该把它用作参数的所有变量。但是,在python中,变量地址是在运行时确定的,因此实际上不需要参数。由于我是python的新手,我想知道是否还有其他含义或约定我应该知道。
x = 5
x += 1
print x
以上代码的以下重构之间是否有任何区别:
def f(x):
x += 1
return x
x = 5
x = f(x)
print x
和
def f():
x++
x = 5
f()
print x
如果没有,那么python中更常用或更受欢迎的方式之一是什么?
答案 0 :(得分:3)
如果不是绝对必要,最好不要使用全局变量。也就是说,在第二个示例中,在引用global x
之前,您需要x
声明。
所以,第一种方式:
f
接受参数x
x
x + 1
x
不受影响第二种方式:
def f():
global x
x += 1
x = 1
f()
f
没有参数x
P.S。 Python没有++
运算符。而是使用x += 1
答案 1 :(得分:2)