123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- '''
- Моносостояние - паттерн, который позволяет получить экземпляры
- клсса с одним общим набором атрибутов
- '''
- class SimpleCat:
- def __init__(self, breed, color):
- self.breed = breed
- self.color = color
- def test_1():
- cat1 = SimpleCat('pers', 'black')
- cat2 = SimpleCat('siam', 'gray')
- print(cat1.__dict__)
- print(cat2.__dict__)
- print(id(cat1.__dict__), id(cat2.__dict__))
- class Cat:
- __shared_attr = {
- 'breed': 'pers',
- 'color': 'black'
- }
- def __init__(self):
- self.__dict__ = Cat.__shared_attr
-
- def test_2():
- cat1 = Cat()
- cat2 = Cat()
- print(cat1.__dict__)
- print(cat2.__dict__)
- print(id(cat1.__dict__), id(cat2.__dict__))
- cat1.breed, cat1.color = 'pers', 'white'
- print('cat1:', cat1.__dict__)
- print('cat2:', cat2.__dict__)
- cat2.breed, cat2.color = 'siam', 'gray'
- print('cat1:', cat1.__dict__)
- print('cat2:', cat2.__dict__)
- '''
- Атрибут weight появится во всех экземплярах класса Cat
- '''
- def test_3():
- cat1 = Cat()
- cat2 = Cat()
- cat1.weight = 5
- print('cat1:', cat1.__dict__)
- print('cat2:', cat2.__dict__)
- def main():
-
- test_3()
- if __name__ == '__main__':
- main()
|