#encoding=utf-8
#类、构造函数、实例方法、类方法、静态方法
class Person:
def __init__(self,name,age):
self.name=name
self.age=age
print('我是构造函数,实例化对象的时候会自动执行,传入的参数需要与我保持一致')
def instance_method(self):
print('我是实例方法,带参数self,它代表实例的本身,我只能通过实例对象访问')
@staticmethod
def static_method():
print('我是静态方法,有@staticmethod装饰器修饰,可以通过实例对象访问,也可以通过类名.方法名访问,就是一个普通的方法')
@classmethod
def class_method(cls):
print('我是类方法,有cls参数,它表示类本身,有@classmethod修饰,可以通过实例对象访问,也可以通过类名.方法名访问')
Vivian = Person('vivian',20) #实例化一个对象
print('------通过实例访问实例方法、静态方法和类方法------')
Vivian.instance_method()
Vivian.static_method()
Vivian.class_method()
print()
print()
print('-------通过类名+方法名的方式访问静态方法和类方法--------')
Person.static_method()
Person.class_method()
print('实例方法只能通过实例来访问,不能用类名+方法名的形式访问')