杂种遗传

2024-09-28 03:20:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为混合继承开发一个代码,但是这个代码不起作用。请你给我解释一下错误,以及我怎样才能使这个代码更好

# creating parent class
class Parent1:
    BloodGroup = 'A'
    Gender = 'Male'
    Genetic_Disease = 'Diabetes'

class Parent2:
    BloodGroup = 'B'
    Gender = 'Female'
    Genetic_Disease = 'Autism' 

    # creating child class
class Child(Parent1,Parent2): # inheriting parent class
    BloodGroup = 'A'
    Gender = 'Female'
    Genetic_Disease = 'Diabetes'
    
    def print_data():
      print(BloodGroup, Gender, Genetic_Disease)
    
# creating object for child class
child1 = Child()
# as child1 inherits it's parent's disease printed data would be it's parent's
child1.print_data()

Tags: 代码creatingdatagenderfemaleclassparentdiabetes
2条回答

您的代码不代表继承层次结构

但您想要表示的似乎是使用“self”关键字的以下代码

class Child(Parent2,Parent1): # inheriting parent class
    BloodGroup = 'A'
    Gender = 'Female'
    Genetic_Disease = 'Diabetes'
    
    def print_data(self):
        print(self.BloodGroup, self.Gender, self.Genetic_Disease)
    
child1 = Child()
child1.print_data()

这是使用“对象”、“继承”概念的更准确方法

class Person:
  hasDNA = True

class Mother(Person): # inherited parent class, Person
  def __init__(self, bloodGroup, genetic_Disease):
    self.bloodGroup = bloodGroup
    self.gender = 'Female'
    self.genetic_Disease = genetic_Disease
 
class Father(Person): # inherited parent class, Person
  def __init__(self, bloodGroup, genetic_Disease):
    self.bloodGroup = bloodGroup
    self.gender = 'Male'
    self.genetic_Disease = genetic_Disease
 
class Child(Person): # inherited parent class, Person
  def __init__(self, bloodGroup, gender, genetic_Disease):
    self.bloodGroup = bloodGroup
    self.gender = gender
    self.genetic_Disease = genetic_Disease
  
  def print_data(self):
    print(self.hasDNA, self.bloodGroup,self.gender, self.genetic_Disease)
    
father1 = Father('A', 'Diabetes')
mother1 = Mother('B', 'Autism')
child1 = Child(father1.bloodGroup, mother1.gender, father1.genetic_Disease)
child1.print_data()

母亲、父亲、子女类是由人继承的指定类

child1 = Child(father1.bloodGroup, mother1.gender, father1.genetic_Disease) 

上面这一行不是继承的行为,只是将父对象的信息传递给子对象

稍加更正:

def print_data(self):
    print(self.BloodGroup, self.Gender, self.Genetic_Disease)

打印功能现在应该可以工作了

相关问题 更多 >

    热门问题