在函数内部更改

时间:2018-12-10 21:14:40

标签: python

我似乎无法理解这种行为

此代码段之间有什么区别。

test = "jlsfkljds"


def foo():

    if not test:
        bar = "lskdjl"


if __name__ == '__main__':
    foo()

哪个运行正常。

还有这个。

test = "jlsfkljds"


def foo():

    if not test:
        test = "lskdjl"


if __name__ == '__main__':
    foo()

哪个返回此错误是因为“如果未测试:”

UnboundLocalError: local variable 'test' referenced before assignment

在我看来,似乎先在文件中定义了test,然后函数在if语句中引用了test的该实例,并在主体内为其分配了新值。但这似乎是错误的。

有人可以向我解释吗?

0 个答案:

没有答案