mirror of
https://github.com/python/cpython.git
synced 2025-08-30 05:35:08 +00:00
gh-115775: Compiler adds __static_attributes__ field to classes (#115913)
This commit is contained in:
parent
70969d53a7
commit
79be75735c
13 changed files with 136 additions and 11 deletions
|
@ -167,6 +167,7 @@ Use a __prepare__ method that returns an instrumented dict.
|
|||
d['foo'] = 4
|
||||
d['foo'] = 42
|
||||
d['bar'] = 123
|
||||
d['__static_attributes__'] = ()
|
||||
>>>
|
||||
|
||||
Use a metaclass that doesn't derive from type.
|
||||
|
@ -182,12 +183,12 @@ Use a metaclass that doesn't derive from type.
|
|||
... b = 24
|
||||
...
|
||||
meta: C ()
|
||||
ns: [('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('a', 42), ('b', 24)]
|
||||
ns: [('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('__static_attributes__', ()), ('a', 42), ('b', 24)]
|
||||
kw: []
|
||||
>>> type(C) is dict
|
||||
True
|
||||
>>> print(sorted(C.items()))
|
||||
[('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('a', 42), ('b', 24)]
|
||||
[('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('__static_attributes__', ()), ('a', 42), ('b', 24)]
|
||||
>>>
|
||||
|
||||
And again, with a __prepare__ attribute.
|
||||
|
@ -208,8 +209,9 @@ And again, with a __prepare__ attribute.
|
|||
d['a'] = 1
|
||||
d['a'] = 2
|
||||
d['b'] = 3
|
||||
d['__static_attributes__'] = ()
|
||||
meta: C ()
|
||||
ns: [('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('a', 2), ('b', 3)]
|
||||
ns: [('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('__static_attributes__', ()), ('a', 2), ('b', 3)]
|
||||
kw: [('other', 'booh')]
|
||||
>>>
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue