Python 3.x 当我运行这段代码时,我不能得到腿号,而是得到了"&书信电报;类别'__主要动物'&燃气轮机&引用;。但是我应该得到4分。原因是什么。我该怎么办?
当我运行这段代码时,我不能得到腿号,而是得到了“”。但是我应该得到4分。原因是什么。我该怎么办?我不是专家,但您正在为输出格式化腿号Python 3.x 当我运行这段代码时,我不能得到腿号,而是得到了"&书信电报;类别'__主要动物'&燃气轮机&引用;。但是我应该得到4分。原因是什么。我该怎么办?,python-3.x,inheritance,Python 3.x,Inheritance,当我运行这段代码时,我不能得到腿号,而是得到了“”。但是我应该得到4分。原因是什么。我该怎么办?我不是专家,但您正在为输出格式化腿号 动物有4条腿,但狗的腿号被设置为“asd”,你的意思是这样吗?我不是专家,但你正在格式化腿号以供输出 动物有4条腿,但狗的腿号设置为“asd”,你的意思是这样做的吗?创建时不要将Animal传递给dog,只需执行a=dog()。狗是动物遗传的,但这并不意味着你应该通过它。仅将要传递的内容传递给构造函数(即传递给\uuuu init\uuu) 您的代码所做的是打印类
动物有4条腿,但狗的腿号被设置为“asd”,你的意思是这样吗?我不是专家,但你正在格式化腿号以供输出
动物有4条腿,但狗的腿号设置为“asd”,你的意思是这样做的吗?创建时不要将
Animal
传递给dog
,只需执行a=dog()。狗是动物遗传的,但这并不意味着你应该通过它。仅将要传递的内容传递给构造函数(即传递给\uuuu init\uuu
)
您的代码所做的是打印类对象本身:print(animal)
因此:
尽管我会推荐一种更干净的方法:
class animal():
def __init__(self,leg_number=4,cell_number="multicellular",feeding="grass"):
self.leg_number= leg_number
self.cell_number= cell_number
self.feeding= feeding
class dog(animal):
def __init__(self,leg_number=4,cell_number="multicellular",feeding="meat"):
super().__init__(leg_number,cell_number)
self.feeding= feeding
print( "this dog has leg number: {}\ncell type: {}\nfeeding type {}".format(self.leg_number,self.cell_number,self.feeding))
a = dog()
输出:
class animal():
def __init__(self, leg_number ,cell_number, feeding):
self.leg_number = leg_number
self.cell_number = cell_number
self.feeding = feeding
def __str__(self):
return f"This {self.__class__.__name__} has {self.leg_number} legs, {self.cell_number} cell type, and feeds on {self.feeding}."
class dog(animal):
def __init__(self):
super().__init__(4, "multicellular", "meat")
def bark(self):
print("Woof")
a = dog()
print(a)
a.bark()
创建时不要将
animal
传递给dog
,只需执行a=dog()。狗是动物遗传的,但这并不意味着你应该通过它。仅将要传递的内容传递给构造函数(即传递给\uuuu init\uuu
)
您的代码所做的是打印类对象本身:print(animal)
因此:
尽管我会推荐一种更干净的方法:
class animal():
def __init__(self,leg_number=4,cell_number="multicellular",feeding="grass"):
self.leg_number= leg_number
self.cell_number= cell_number
self.feeding= feeding
class dog(animal):
def __init__(self,leg_number=4,cell_number="multicellular",feeding="meat"):
super().__init__(leg_number,cell_number)
self.feeding= feeding
print( "this dog has leg number: {}\ncell type: {}\nfeeding type {}".format(self.leg_number,self.cell_number,self.feeding))
a = dog()
输出:
class animal():
def __init__(self, leg_number ,cell_number, feeding):
self.leg_number = leg_number
self.cell_number = cell_number
self.feeding = feeding
def __str__(self):
return f"This {self.__class__.__name__} has {self.leg_number} legs, {self.cell_number} cell type, and feeds on {self.feeding}."
class dog(animal):
def __init__(self):
super().__init__(4, "multicellular", "meat")
def bark(self):
print("Woof")
a = dog()
print(a)
a.bark()
就在我发布回复后,op编辑了这个问题。在我发布我的回复后,op编辑了这个问题,上面确实写了self,leg_number=“asd”,cell_number=“multicellular”。它确实说了self,leg\u number=“asd”,cell\u number=“multicellular”噢,天哪!!!。现在它起作用了。非常感谢:)我是怎么犯这个错误的呵呵:)我只是在学习python。谢谢你。@CanerErdoğan别忘了将其标记为答案。还可以看看底部我推荐的版本。继承可以是非常强大的,并且比你目前正在进行的实验更好地利用它。哦,我的天啊!!!。现在它起作用了。非常感谢:)我是怎么犯这个错误的呵呵:)我只是在学习python。谢谢你。@CanerErdoğan别忘了将其标记为答案。还可以看看底部我推荐的版本。继承可以是非常强大的,并且比您目前正在进行的实验更好地利用它。