Python的功能范围

时间:2014-10-03 21:44:23

标签: python scope

我正在使用python并执行以下操作。

x = [1,2,3,4,5]

def function1():
  print(x)

function1()

我认为我会得到错误name 'x' is not defined但我没有,它打印变量x,即使它没有在函数中定义。为什么python允许我使用在函数内部定义的变量,即使它们具有不同的范围?

3 个答案:

答案 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的变量提升进行比较(尽管博客使用负面示例来演示它)。