我正在使用python并执行以下操作。
x = [1,2,3,4,5]
def function1():
print(x)
function1()
我认为我会得到错误name 'x' is not defined
但我没有,它打印变量x,即使它没有在函数中定义。为什么python允许我使用在函数内部定义的变量,即使它们具有不同的范围?
答案 0 :(得分:0)
基本上你将x设置为全局变量。
x = "myString"
function global():
print(x) // Global
function notglobal():
y = "myOtherString"
print(y) // Not Global
class myClass:
z = "notGlobal" // Not Global
function printZ():
print(z) // Global To class
print(z) // Not global so will error out
答案 1 :(得分:0)
x
是全局的,这意味着所有功能都可以使用它。
答案 2 :(得分:0)
我喜欢this blog post提供的处理方式,它将描述的行为与Javascript的变量提升进行比较(尽管博客使用负面示例来演示它)。