1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- # --------------------------------------------------
- # Миксин для преобразования к строке
- class ToStringMixin:
- def __str__(self):
- return f"{self.__class__.__name__}({str(self.__dict__)})"
- class MyClass(ToStringMixin):
- def __init__(self, x, y):
- self.x = x
- self.y = y
- def main():
- obj = MyClass(1, 2)
- print(obj)
- if __name__ == '__main__':
- main()
- # --------------------------------------------------
- # Миксин для подстчета количества экземпляров
- class CountInstancesMixin:
- count = 0
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
- self.__class__.count += 1
- class Cat(CountInstancesMixin):
- def __init__(self, name):
- self.name = name
- super().__init__()
- class Dog(CountInstancesMixin):
- def __init__(self, name):
- super().__init__()
- def main():
- o1 = Cat('qwe')
- o2 = Cat('ewer')
- o3 = Dog('sdf')
- print(Cat.count)
- print(Dog.count)
- if __name__ == '__main__':
- main()
|