抱歉發佈這樣一個奇怪的問題,通常當我感到困惑時,我只是「隨它而行」,直到我有了頓悟,然後將其整理出來,但在我的課程中調用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