Files
Mastering-Python-2e-code_2/CH_08_metaclasses/T_03_accessing_metaclass_attributes.rst
T
2022-05-05 18:25:55 +02:00

34 lines
852 B
ReStructuredText

>>> class Meta(type):
...
... @property
... def some_property(cls):
... return 'property of %r' % cls
...
... def some_method(self):
... return 'method of %r' % self
>>> class SomeClass(metaclass=Meta):
... pass
# Accessing through the class definition
>>> SomeClass.some_property
"property of <class '...SomeClass'>"
>>> SomeClass.some_method
<bound method Meta.some_method of <class '__main__.SomeClass'>>
>>> SomeClass.some_method()
"method of <class '__main__.SomeClass'>"
# Accessing through an instance
>>> some_class = SomeClass()
>>> some_class.some_property
Traceback (most recent call last):
...
AttributeError: 'SomeClass' object has no attribute 'some_property'
>>> some_class.some_method
Traceback (most recent call last):
...
AttributeError: 'SomeClass' object has no attribute 'some_method'