如何在创建新字典时从类变量访问字典值

时间:2015-02-14 23:42:07

标签: python class dictionary

这似乎是一个非常奇怪的范围问题:

首先,我将展示有效的方法:

class A():
   x = 1
   y = x

class B():
   x = {'a' : 1, 'b' : 2}
   y = {z : 1 for z in x}

不起作用:

class C():
   x = {'a' : 1, 'b' : 2}
   y = {z : max(x) for z in x}    #  max could be replaced with any function

导致:

NameError: name 'x' is not defined

我知道它指的是"内部" (值)在字典理解中。

这可能意味着在列表理解中以某种方式,类范围不可用。

为什么我们如何解决这个问题(不使用它作为实例变量,即使用__init __)?

0 个答案:

没有答案