Py学习  »  Python

python:类内的字典理解[复制]

Rob Kwasowski • 5 年前 • 1755 次点击  

如何从类定义中的列表理解访问其他类变量?以下操作在Python2中有效,但在Python3中失败:

class Foo:
    x = 5
    y = [x for i in range(1)]

python 3.2给出了错误:

NameError: global name 'x' is not defined

尝试 Foo.x 也不管用。关于在python 3中如何做到这一点有什么想法吗?

一个稍微复杂一点的激励例子:

from collections import namedtuple
class StateDatabase:
    State = namedtuple('State', ['name', 'capital'])
    db = [State(*args) for args in [
        ['Alabama', 'Montgomery'],
        ['Alaska', 'Juneau'],
        # ...
    ]]

在这个例子中, apply() 本来是个不错的解决方案,但不幸的是,它已经从python 3中删除了。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40700
 
1755 次点击  
文章 [ 5 ]  |  最新文章 5 年前