为什么重新分配变量(函数参数)会导致" UnboundLocalError:"在Python 3.3中?

时间:2014-07-02 18:06:03

标签: python

我发现这个完全令人困惑。以下代码运行良好:

def vendor(title, description):
    def validate():
        print("in validate, title: ", title)
        print("in validate, description: ", description)
        convert()
    def convert():
        print("\nin convert, title: ", title)
        print("in convert, description: ", description)
        if title == "fedex":
            pass
            #description = "something else"
    validate()
vendor("ups", "stuff")    

但是将pass替换为description = "something else"这样的重新分配,我得到UnboundLocalError: local variable 'description' referenced before assignment。如果我取出print("in convert, description: ", description)程序运行没有错误。

是什么给出的?在分配之前我如何引用描述?此外,如果传递vendor()“fedex”或其他类似“ups”作为标题似乎并不重要,我仍然会收到错误消息。我将如何做我正在尝试做的事情 - 如果某个条件为True,则重新分配变量(尽管是函数参数)?

提前致谢!

0 个答案:

没有答案