Python变量作用域是类型特定的吗?

2024-04-19 02:57:02 发布

您现在位置:Python中文网/ 问答频道 /正文

from functools import wraps
def mywrapper(func):
    variable1 = {}
    variable2 = 0
    @wraps(func)
    def newfunc(*args):
        if args in variable1:
            return variable1[args]
        else:
            variable1[args] = func(*args)
            variable2 = 1
            return variable1[args]
    return newfunc

如果我运行这个代码,我会得到错误消息“localvariablevariable2wasnotassigned”。但是如果我把它改成字典,它就可以正常工作,就像variable1一样。这让我对Python变量作用域感到困惑——它依赖于类型吗?我正在使用2.7.6。你知道吗


Tags: infromimportreturnifdefargselse