for*_*ord 2 python class object init
很抱歉发布这样一个奇怪的问题,通常当我感到困惑时,我只是"随身携带",直到我有一个顿悟,然后将其排除,但def __init__(self):在我的课堂内调用似乎完全是多余的,似乎将它留下来也是如此:
class Pet(object):
type_of_pet = ""
number_of_legs = 0
name = ""
Run Code Online (Sandbox Code Playgroud)
让我创建:
fred = pet()
fred.type_of_pet = "alligator"
Run Code Online (Sandbox Code Playgroud)
就像我要把类更改为:
class Pet(object):
def __init__(self):
type_of_pet = ""
alice = Pet()
alice.type_of_pet = "Pterodactyl"
Run Code Online (Sandbox Code Playgroud)
我只是没有得到我需要的原因__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
Run Code Online (Sandbox Code Playgroud)
这将在实例上设置属性,而不是类,因此每个对象都有自己的名称,类型和腿数.
| 归档时间: |
|
| 查看次数: |
2170 次 |
| 最近记录: |