ost*_*ach -1 python python-3.6
根据Python 3.6发行说明," 现在保留了类属性定义顺序".这在PEP 520中更详细地描述.
但是,我似乎无法让这个工作?
例如:
class Foo:
c = 1
b = 2
a = 3
print(Foo.__dict__)
# mappingproxy({'__dict__': <attribute '__dict__' of 'Foo' objects>,
# '__doc__': None,
# '__module__': '__main__',
# '__weakref__': <attribute '__weakref__' of 'Foo' objects>,
# 'a': 3,
# 'b': 2,
# 'c': 1})
Run Code Online (Sandbox Code Playgroud)
要么:
class Foo:
def __init__(self, c=1, b=2, a=3):
self.c = c
self.b = b
self.a = a
foo = Foo()
foo.__dict__
# {'a': 3, 'b': 2, 'c': 1}
Run Code Online (Sandbox Code Playgroud)
我有什么误会?
从输出的外观来看,这可能不是你真正运行的代码.你可能写过
Foo.__dict__
Run Code Online (Sandbox Code Playgroud)
在IPython交互式会话中.IPython在显示时自动对dicts和mappingproxy对象的键进行排序.
归档时间: |
|
查看次数: |
62 次 |
最近记录: |