|
Python中有三种比较常见的方法类型,如类方法和静态方法,实例方法,他们是面向对象编程中重要的概念。
1.类方法
类方法是通过使用装饰器@classmethod来定义的,他的第一个参数是cls,指向类本身,允许我们在方法中操作类的属性或调用其他类方法。
类方法的使用:类方法可以通过类名和实例对象来调用,当类方法被调用时,Python会自动传递类本身作为第一个参数(不能传递实例的属性和方法)。类方法能访问类属性,但是不能访问实例属性。
类属性修改会同步到未被修改过的实例属性,- class Texts:
- textNum1 = 1
- textNum2 = 1
- @classmethod
- def addnum(cls):
- Texts.textNum1 += 1
- Texts.textNum2 += 1
- # 使用两个textNum判断是否只有被修改过的实例属性,不会受到类属性修改的影响
- text1 = Texts()
- text2 = Texts()
- text1.textNum1 += 1
- print(text1.textNum1, text2.textNum1)
- print(text1.textNum2, text2.textNum2)
- # 判断在类属性修改前的实例对象是否会收到影响
- Texts.addnum()
- Texts.addnum()
- Texts.addnum()
- text3 = Texts()
- print(text1.textNum1, text2.textNum1, text3.textNum1)
- print(text1.textNum2, text2.textNum2, text3.textNum2)
复制代码 2.实例方法
实例方法是最常用的方法类型,不需要特定的装饰器,他的第一个参数是self,指向实例本身,允许我们在实例中调用实例属性或方法。
3.静态方法
静态方法是通过使用装饰器@staticmethod来定义的,参数任意。
静态方法的使用:静态方法可以通过类名和实例对象来调用,但是方法体中不能使用类或实例的任何属性和方法。
4.总结
类方法和静态方法都是只属于类的方法,都能使用类名和实例名调用,他们的区别在于,类方法可以操作类的属性和其他类方法,而静态方法不能操作类的属性和其他类方法,只适用于在类中的组织功能性代码。不同于类方法和静态方法,实例方法只能使用实例对象调用,可以操作实例属性和实例方法、类方法、静态方法,但是不能操作类属性。
通过合理的使用这些方法,可以增强代码的可读性和可维护性。
来源:https://www.cnblogs.com/againss/p/18251832
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|