很抱歉提出这样奇怪的问题,通常当我感到困惑时,我只是“顺其自然”,直到我顿悟,然后再解决它,但是在内部调用 def __init__(self):
我的类(class)似乎完全是多余的,似乎把它去掉也一样有效:
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__
并且这里的其他线程并不像我希望的那样清晰。我可以做些什么来使这个“点击”?
最佳答案
在类定义中放置赋值语句不会声明实例属性;它设置类属性。如果这样做,所有宠物将共享相同的 name
、type_of_pet
和 number_of_legs
。
__init__
用于设置实例属性:
def __init__(self, type_of_pet, name, number_of_legs):
self.type_of_pet = type_of_pet
self.name = name
self.number_of_legs = number_of_legs
这将在实例而不是类上设置属性,因此每个对象都有自己的名称、类型和腿数。
关于python - 用类创建对象,为什么需要__init__(self, args) :?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18324127/