123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- # Множественное наследование
- # MRO
- class Doctor:
- def can_cure(self):
- print('Я доктор, я умею лечить')
- class Builder:
- def can_build(self):
- print('Я строитель, я умею строить')
- class Person(Doctor, Builder):
- def can_build(self):
- print('Я человек, я тоже умею строить')
- Builder.can_build()
- # ----------------------------------------------------------
- class Product:
- def __init__(self, name, price):
- self.name = name
- self.price = price
- def get_price(self):
- return self.price
-
- class Discount():
-
- def apply_discount(self, discount):
- self.price -= self.price * discount
- class DiscountProduct(Product, Discount):
- pass
- # ----------------------------------------------------------
- class Mother:
-
- def __init__(self, mother_name):
- self.mother_name = mother_name
- class Father:
- def __init__(self, father_name):
- self.father_name = father_name
- class Child(Mother, Father):
-
- def __init__(self, child_name, mother_name, father_name):
- super().__init__(mother_name)
- Father.__init__(self, father_name)
- self.child_name = child_name
- def introduce(self):
- return f"Меня зовут {self.child_name}. Моя мама - {self.mother_name}, мой папа - {self.father_name}"
- # ----------------------------------------------------------
- class User:
- def __init__(self, name, password):
- self.name = name
- self.password = password
- def get_info(self):
- return f"Имя пользователя: {self.name}"
-
- class Authentication(User):
- def authenticate(self, name, password):
- return self.name == name and self.password == password
- class AuthenticatedUser(Authentication, User):
- pass
- # ----------------------------------------------------------
- class Person:
- def __init__(self, name, age):
- self.name = name
- self.age = age
-
- def display_person_info(self):
- print(f"Person: {self.name}, {self.age}")
- class Company:
- def __init__(self, company_name, location):
- self.company_name = company_name
- self.location = location
- def display_company_info(self):
- print(f"Company: {self.company_name}, {self.location}")
- class Employee(Person, Company):
- def __init__(self, name, age, company_name, location):
- super().__init__(name, age)
- Company.__init__(self, company_name, location)
- def main():
- emp = Employee('Jessica', 28, 'Google', 'Atlanta')
- emp.display_person_info()
- emp.display_company_info()
- # s = Person()
- # s.can_build()
- # print(Person.__mro__)
- # p1 = DiscountProduct('Телефон', 10000)
- # p1.apply_discount(0.1)
- # print(p1.get_price())
- if __name__ == '__main__':
- main()
|