我是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