python中 普通方法_python中普通方法classmethod和staticmethod的区别与用法
生活随笔
收集整理的这篇文章主要介绍了
python中 普通方法_python中普通方法classmethod和staticmethod的区别与用法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
class Foo(object):
#实例方法,第一个承诺书必须是实例对象,一般习惯用self.
def ins_m(self):
print("是类{}的实例方法,只能被实例调用".format(Foo))
#类方法,第一个参数必须是类对象,一般习惯使用cls.使用@classmethod装饰器装饰
@classmethod
def cla_m(cls):
print('class method')
#j静态方法,参数没有要求,和类没有绑定关系,就是一个普通的方法,
@staticmethod
def sta_m():
print('static method')
foo=Foo() #创建一个实例
#实例方法只能被实例调用 (如果把实例方法的参数去掉,可以被类调用,不能被实例调用!)
#类方法可以被类和实例调用
#静态方法可以被类和实例调用 (不需要参数)
因此:当类中的某个方法是一个普通方法时,加一个staticmehod装饰器,不需要添加实例参数。此方法可以用外部函数替换。
另外还有一个abstractmethod,抽象类,一般在基类中使用,只能被继承,不能被实例化!
总结
以上是生活随笔为你收集整理的python中 普通方法_python中普通方法classmethod和staticmethod的区别与用法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Java入力项目无法设定到form_ht
- 下一篇: csv数据去重 python_pytho