这两个代码有什么区别?

时间:2021-07-13 21:27:36

标签: python

Turtle=Animal("Turtle")
Turtle.set_category("reptile")

class Turtle(Animal):
    category="reptile"

在 Python 中学习对象组合时,我遇到了一个问题,后者有效,但前者无效。

这是一堂课

class Animal:
    name = ""
    category = ""
    
    def __init__(self, name):
        self.name = name
    
    def set_category(self, category):
        self.category = category

2 个答案:

答案 0 :(得分:1)

这两个序列的行为应该相同:

turtle=Animal("Turtle")
turtle.set_category("reptile")

class Turtle(Animal):
    category="reptile"
    name = "Turtle"

turtle = Turtle()

两个 turtle 对象的行为相同。

答案 1 :(得分:0)

在第一段代码中,您定义了存储在 Animal 变量中的 Turtle 类的实例,而在第二段代码中,您定义了一个名为 {{1} } 将从 Turtle 类继承。

在此处阅读有关类对象的更多信息:https://docs.python.org/3/tutorial/classes.html#class-objects
在此处阅读有关类继承的更多信息:https://docs.python.org/3/tutorial/classes.html#inheritance

相关问题