字典理解中的NameError

问题描述 投票:0回答:1

我偶然发现一个奇怪的问题。我将其范围缩小到下面几行,只是为了准确地关注正在发生的事情,因此,请不要介意这段代码的目的。

代码是:

dictionary = {
        'key': 'value'
}

class Test:

    a = {**dictionary}

    b = dictionary['key']

    c = {i: dictionary[i] for i in dictionary}

运行没有任何问题。

如果我将其更改为:

class Test:

    dictionary = {
        'key': 'value'
    }

    a = {**dictionary}

    b = dictionary['key']

    c = {i: dictionary[i] for i in dictionary}

我会得到这个:

追踪(最近通话):

文件“ /home/PythonTest.py”,第2行,在类测试:

文件“ /home/PythonTest.py”,测试中的第12行c = {i:字典中的i的dictionary [i]}

文件“ /home/PythonTest.py”,第12行,在c = {i:字典中的i的dictionary [i]}

NameError:未定义名称'dictionary'

为什么仅在第三次分配时抛出NameError?调试时,我看到对变量a和b的赋值工作正常。

python dictionary nameerror dictionary-comprehension
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.