我是python(來自C++世界)的新手,正在嘗試使用類方法。我創建了一個沒有任何參數的方法(在這種情況下有目的地避免了self
參數)。然後我試圖把它調用沒有結構的python類方法
class car:
def car_method():
print("Inside Car method")
obj = car_method()
obj.car_method() <---- this creates error: TypeError: car_method() takes 0 positional arguments but 1 was given
我認爲這個錯誤是因爲,在Python中,每類方法,調用時總是通過至少一個參數,它是對象的引用。我對麼?
然後進一步實驗,我寫了
obj.car_method <----- assuming I am not passing any argument to it
但功能打印什麼。
然後我試圖使用打印它的類型
print(obj.car_method)
這就造成了
bound method car.car_method of <__main__.car object at 0x005D2290>
任何人能解釋這是怎麼回事。我如何「調用」car_method?如果沒有辦法調用car_method,爲什麼python讓我定義沒有任何參數的方法?
我想在這裏掌握一些基礎知識。我甚至可以將car_method作爲類方法調用嗎?或者它只是在類中定義的方法?
在寫最後一句話'我甚至可以稱之爲car_method作爲類方法?或者它只是在類內部定義的一個方法而已',我意識到可能它的行爲是不同的,經過進一步的實驗,我意識到,它確實是一個類方法,可以在類中使用,但不喜歡'self.car_method )'。這仍然會導致錯誤。但是如果將它稱爲'car_method()',就可以正常工作,前提是你不要在任何其他類方法中使用它!它可以用作類屬性! – legameeternoforall