gpt4 book ai didi

使用具有不匹配变量的类的 Python 多重继承

转载 作者:太空狗 更新时间:2023-10-30 02:54:06 25 4
gpt4 key购买 nike

如何使用带参数的类构造函数在 python 中设置多重继承?我见过很多没有 arg 构造函数的例子,但这并不好玩……我已经用 C++ 完成了这个设置。我正在学习 python,并想我会尝试重新创建相同的设置。

如何在没有所有 *args,*kwargs bs 的情况下让我的 Student_Worker 构造函数工作?

如果覆盖从 PersonStudentWorker 为什么它不能从 StudentWorkerStudent_Worker

如果菱形案例适用于在 4 个构造函数中的任何一个中没有参数的类,为什么它不能在构造函数中有参数的菱形案例中运行?

我只是错过了一些简单的东西吗?我到处都找不到像样的向导。

class Person:        #BASE CLASS
num_of_persons = 0;

def __init__(self,x,y,z):
Person.num_of_persons += 1
print("Greetings!")
self.Name = x
self.Sex = y
self.DOB = z
print("I am " + self.Name)

def get_info(self):
return '{} {} {}'.format(self.Name,self.Sex,self.DOB)


class Student(Person): #DERIVED CLASS
def __init__(self, x, y, z, s):
self.school = s
return super().__init__(x, y, z)

def get_info(self):
return super().get_info() + ' {}'.format(self.school)


class Worker(Person): #DERIVED CLASS
def __init__(self, x, y, z, c):
self.company = c
return super().__init__(x, y, z)

def get_info(self):
return super().get_info() + ' {}'.format(self.company)



class Student_Worker(Student, Worker): #MULTIPLE DERIVED CLASS
def __init__(self,x,y,z,s,c):
Student.__init__(x,y,z,c)
Worker.__init__(c)


p1 = Person("John","M", "1900")
s1 = Student("Sam","F","1910","iSchool")
w1 = Worker("Larry","M","1920","E-SITE")
sw1 = Student_Worker("Brandy","F","1930","iSchool","E-Site")

print(p1.get_info())
print(s1.get_info())
print(w1.get_info())
print(sw1.get_info())

最佳答案

您可以尝试如下创建构造函数:

1)学生

class Student(Person): #DERIVED CLASS
def __init__(self, x, y, z, s):
Person.__init__(self,x, y, z)
self.school = s

2) worker

class Worker(Person):  #DERIVED CLASS
def __init__(self, x, y, z, c):
Person.__init__(self,x, y, z)
self.company = c

3) 学生工

class Student_Worker(Student, Worker): #MULTIPLE DERIVED CLASS
def __init__(self,x,y,z,s,c):
Student.__init__(self,x,y,z,s)
Worker.__init__(self,x,y,z,c)

如果你运行你的代码,你会得到这个输出:

Greetings!
I am John
Greetings!
I am Sam
Greetings!
I am Larry
Greetings!
I am Brandy
Greetings!
I am Brandy
John M 1900
Sam F 1910 iSchool
Larry M 1920 E-SITE
Brandy F 1930 E-Site iSchool

关于使用具有不匹配变量的类的 Python 多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47291784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com