Sobes.tech
Junior — Middle

Pythonдо эки классын бириктирүү же кошуу мүмкүнбү, алардын мүнөздөмөлөрүн бириктирген жаңы объект түзүү аркылуу?

sobes.tech AI

AIден жооп

Ооба, Pythonдо жаңы объект түзүү мүмкүн, ал эки класстын мүнөздөмөлөрүн бириктирет, көп мурас алуу же динамикалык жаңы класс түзүү аркылуу.

Көп мурас алуу менен мисал:

class A:
    def __init__(self):
        self.a = 1

class B:
    def __init__(self):
        self.b = 2

class C(A, B):
    def __init__(self):
        A.__init__(self)
        B.__init__(self)

obj = C()
print(obj.a)  # 1
print(obj.b)  # 2

Ошондой эле, type функциясын колдонуп, мүнөздөмөлөрдү бириктирген динамикалык класс түзүү мүмкүн:

C = type('C', (A, B), {})
obj = C()

Ушул жол менен жаңы объект эки класстын мүнөздөмөлөрүн камтыйт.