方法:
实例方法:
class myclass: def foo(self): print(id(self))#id打印地址
a=myclass()#创建实例 b=myclass() print(id(a)) a.foo()b.foo()注意:只能通过实例调用,第一个定义的参数只能是实例本身的引用
所以a调用的方法和本身print打印的id地址相同,然而声明的
另一个实例调用的同一个方法,id地址是不一样的,用myclass
调用的实例方法,书写是不会报错,运行结果报错,所以不能被类调用
类方法:
class myclass: @classmethod #装饰器 def foo2(self):#实例方法 print(id(self)) a=myclass()#创建实例 b=myclass() myclass.foo2()#类调用 a.foo2()#实例调用注意:定义类方法要使用装饰器@classmethod,定义的第一个参数只能是类对象的引用,可以通过类或实例直接调用,
这里类和实例打印出来的id地址一样,所以可以被类和实例调用
静态方法
class myclass: @staticmethod def foo3():#没有默认的必须参数 print() a=myclass()#创建实例 b=myclass()# myclass.foo3() # a.foo3()注意:定义静态方法试用装饰器@staticmethod,没有默认的必须参数,