python3种方式定义类方法
- 常规方法:通过self参数隐式的传递当前类对象的实例。需要实例化之后才能调用
- @classmethod修饰:通过cls参数传递当前类对象。直接类对象调用【类方法.方法名】/实例化后调用均可
- @staticmethod修饰:和普通函数一样。直接类对象调用【类方法.方法名】/实例化后调用
self和cls不是强制的。只是PEP8的一种编程风格。self通常作为实例方法的第一参数,cls通常作为类方法的第一参数。即self传递当前类对象的实例,cls传递当前类对象
使用@staticmethod @classmethod方法,有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。
在Python中类和实例都是对象,都占用了内存空间,合理的使用@staticmethod @classmethod方法,就可以不用实例化
就直接使用类的方法
参考:https://blog.csdn.net/weixin_41010198/article/details/84828022