# Множественное наследование
# 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()