Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 当我运行这段代码时,我不能得到腿号,而是得到了"&书信电报;类别'__主要动物'&燃气轮机&引用;。但是我应该得到4分。原因是什么。我该怎么办?_Python 3.x_Inheritance - Fatal编程技术网

Python 3.x 当我运行这段代码时,我不能得到腿号,而是得到了"&书信电报;类别'__主要动物'&燃气轮机&引用;。但是我应该得到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分。原因是什么。我该怎么办?

我不是专家,但您正在为输出格式化腿号


动物有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别忘了将其标记为答案。还可以看看底部我推荐的版本。继承可以是非常强大的,并且比您目前正在进行的实验更好地利用它。