在上篇博客的在线编程中需要实例化对象,然后调用类中定义的方法,这其中遇到点小问题,就是当去掉方法的第一个参数self后,直接调用方法(不使用实例对象调用,直接Find(4,array)),然后报错:missing 1 required positional argument: 'self'
由于之前对这一块没有过深地研究,只知道self是默认的参数,传参是不用管它,之前最多用在__init__方法中,现在稍微研究一下,看看这里边有什么奥秘,上代码:
# # -*- coding:utf-8 -*-
class Test:
def instance(self):
return "这是实例方法"
@classmethod
def classM(cls):
return "这是类方法"
@staticmethod
def static():
return "这是一个和类无关的方法"
t=Test() #实例化对象
print(t.instance())
print(t.classM())
print(t.static())
如上所示,在类Test中定义了三个方法,第一个为实例方法,参数为self;第二个为类方法,参数为cls;第三个为静态方法,没有参数,后两者都使用了装饰器,感兴趣的朋友可以搜一下这一块,之后有时间我也会探究一下。
之后分别用实例对象t调用这三个方法并输出: