# 类中的3种方法
# 1、类方法
# 2、静态方法
# 3、实例方法
class Person(object):
#类属性
name = 'Jay'
# 类方法,用@classmethod装饰器表示是类方法,方法形参必须要有(默认是cls)
@classmethod
def getClsProperty(cls):
return cls.name
@classmethod
def setClsProperty(cls, name):
cls.name = name
# 静态方法,用@staticmethod装饰器表示是静态方法,注意形参可以为空
@staticmethod
def stMethod():
print('我是静态方法,类{}中类属性name的值是:{}'.format(Person.__name__, Person.name))
# 实例方法 之 构造方法,当实例对象初始化时调用,方法形参必须要有(默认是self)
def __init__(self, name):
self.name = name
# 实例方法 之 析构方法,当实例对象不再被引用,垃圾回收时调用。
def __del__(self):
pass
def getName(self):
return self.name
def setName(self, name):
self.name = name
if __name__ == '__main__':
# 调用类中的静态方法
Person.stMethod()
# 调用类中的类方法
print('使用类方法返回类属性name的值:', Person.getClsProperty())
Person.setClsProperty('CLASS_NAME')
print('使用类方法设置类属性name值后再返回值:', Person.getClsProperty())
# 调用类中的实例方法
p = Person('老六')
print('使用实例方法返回实例属性name的值:', p.getName())
p.setName('小六')
print('使用实例方法设置实例属性name值后再返回值:', p.getName())
执行结果: