class MyClass(): # 直接将属性定义在类中,这种属性称为 类属性 # 类属性可以通过实列对象和类对象访问,但是只能通过类对象修改 # 类属性都是用来保存一些公共的数据 a = 10 def __init__(self): # 可以直接将属性添加到实列对象中,此时这个属性称为实例属性 # 实例属性只能被实例访问和修改,无法被类访问和修改 # 一般情况下定义的都是实例属性 self.b = 'hello' # 在类中直接定义的方法,称为实例方法 # 实例方法,可以通过实例对象和类对象调用 # 但是注意:通过类对象调用时,不会自动传递self def fn(self): print('我是fn方法') # 在方法前添加classmethod,则该方法自动变成类方法 # 类方法的第一个参数默认是cls表示当前的类对象 # 并且类方法既可以通过实例对象调用也可以通过类对象调用 @classmethod def fn2(cls): print('我是fn2方法', cls) # 添加staticmethod装饰器的方法是 静态方法 # 静态方法可以通过类和实例调用,并且没有任何默认参数 # 静态方法是和对象无关的方法,一般静态方法都是一些工具方法 # 觉得没有地方放了,就放到一个类中 @staticmethod def fn3(): print('我是fn3方法') mc = MyClass() # mc.a = 50 MyClass.a = 30 print(mc.b) print(MyClass.a) MyClass.fn(mc) MyClass.fn2() mc.fn2() MyClass.fn3() mc.fn3()
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)