抱歉发布这样一个奇怪的问题,通常当我感到困惑时,我只是“随它而行”,直到我有了顿悟,然后将其整理出来,但在我的课程中调用def __init__(self):
似乎完全是多余的,似乎只是让它工作而已还有:使用类创建对象,为什么我需要__init __(self,args):?
class Pet(object):
type_of_pet = ""
number_of_legs = 0
name = ""
让我创建:
fred = pet()
fred.type_of_pet = "alligator"
还是一样,好像我是在类更改为:
class Pet(object):
def __init__(self):
type_of_pet = ""
alice = Pet()
alice.type_of_pet = "Pterodactyl"
我只是没有得到为什么我需要__init__
和其他线程在这里没有我希望的那么清晰。有什么我可以做这个“点击”?
您_definitely_不想在'__init__'中写入'type_of_pet =“”'。这只是设置一个立即消失的局部变量。你可能想要'self.type_of_pet =“”'。但更好的是,您可能希望将'type_of_pet'作为参数,并将该值复制到该属性。 – abarnert
另外,真的没有理由在这个类上拥有这三个类的属性。这不是Java或C++,您需要先声明变量和成员,然后才能使用它们。事实上,你正在做的是在类上创建成员,由所有实例共享,然后通过在具有相同名称的实例上创建成员来隐藏它们。 – abarnert