前言
Python中类的实例方法、类方法、自由方法、静态方法、保留方法进行简要总结。
一、实例方法
实例对象的方法,由各实例对象独享。
注意:实例方法采用<对象名>.<方法名>()形式使用,其等价于<类名>.<方法名>(对象名)。
二、类方法
类方法:类对象的方法,由所有实例对象共享。
注意:类方法只能操作类属性和其他类方法,不能操作实例属性和实例方法。采用<类名>.<方法名>()或者<对象名>.<方法名>()形式使用。
三、自由方法
自由方法:定义在类命名空间中的一个普通函数,由类所在命名空间管理,类对象独享。
注意:不需要cls或者self这样的参数,可以无参。只能操作类属性和类方法,不能操作实例属性和实例方法。采用<类名>.<自由方法名>()的形式使用。
四、静态方法
静态方法:定义在类中的普通函数,能够被类对象和实例对象所共享。
注意:可以无参。只能操作类属性和其他类方法,不能操作实例属性和实例方法。采用<类名>.<静态方法名>()或者<对象名>.<静态方法名>()形式使用。
五、保留方法
保留方法:由双下划线开始和结束,保留使用,如__name__()。
class Democlass:
def __init__(self,name):
self.name = name
def getName1(self): #实例方法
return "类的实例方法"
@classmethod #类方法装饰器
def getName2(cls):
return "类的类方法"
def getName3():
return "类的自由方法"
@staticmethod #静态方法装饰器
def getName4():
return "类的静态方法"
def __name__(self):
return "类的保留方法"
dc1 = Democlass("老王")
print("类的实例方法:",dc1.getName1(),Democlass.getName1(dc1))
print("类的类方法:",dc1.getName2(),Democlass.getName4())
print("自由方法:",Democlass.getName3())
print("类的静态方法:",dc1.getName4(),Democlass.getName4())
print("类的保留方法:",dc1.__name__())