Методы работы с атрибутами - getattr, setattr, hasattr
__mro__ # возвращает картеж родетельских классов
Mixin
— это класс, предоставляющий реализации методов для повторного использования дочерними классами. Он представляет ограниченную форму множественного наследования и родительский класс, который просто даёт функциональные возможности подклассам, не содержит состояния и не предназначен для создания экземпляров.
Когда использовать миксины? Они подходят, когда хочется:
использовать определённую функцию во множестве разных классов
class C:
def __init__(self):
self._x = None
@property
def x(self): # В декораторах 'setter' и 'deleter' нужно указывать имя метода-свойства
"""I'm the 'x' property."""
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
class A():
count = 0
def __init__(self):
A.count += 1
def exclaim(self):
print('I`m an A!')
@classmethod
def kids(cls):
print("A has", cls.count, "little objects.")
def test_classmethod():
easy_a = A()
breezy_a = A()
wheezy_a = A()
A.kids()
class CoyoteWeapon():
@staticmethod
def commercial():
print('This CoyoWeapon has been brought to you by Acme')
CoyoteWeapon.commercial()
Фуyкция divmod возвращает частное и остаток
>>> divmod(9, 5)
(1, 4)
import string
>>> string.whitespace
' \t\n\r\x0b\x0c'
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'