码迷,mamicode.com
首页 > 编程语言 > 详细

Python3的静态方法和类方法

时间:2018-06-04 23:29:07      阅读:327      评论:0      收藏:0      [点我收藏+]

标签:class   print   定义   this   实例   方法   调用   静态   div   

静态方法和类方法的创建:

将它们分别包装在staticmethodclassmethod类的对象中。

静态方法的定义中没有参数self,可直接通过类来调用。

类方法的定义中包含类似于self的参数,通常被命名为cls。对于类方法,也可通过对象直接调用,但参数cls将自动关联到类。

示例:

 1 class MyClass:
 2 
 3     def smeth():
 4         print("This is a static method")
 5 
 6     smeth = staticmethod(smeth)
 7 
 8     def cmeth(cls):
 9         print("This is a class method of",cls)
10     cmeth = classmethod(cmeth)

像这样手工包装盒替换方法有点繁琐。所以引入装饰器(装饰器可用于包装任何可调用的对象,并且可用于方法和函数),可指定一个或多个装饰器,为此可在方法(或函数)前面使用运算符@列出这些装饰器,

指定多个装饰器时,应用的顺序与列出的顺序相反(从后往前调用)

1 class MyClass:
2 
3     @staticmethod
4     def smeth():
5         print("This is a static method")
6 
7     @classmethod
8     def cmeth(cls):
9         print("This is a class method of",cls)

定义这些方法后,就可像下面那样使用它们(无需实例化类):

This is a static method
This is a class method of <class __main__.MyClass>

 

Python3的静态方法和类方法

标签:class   print   定义   this   实例   方法   调用   静态   div   

原文地址:https://www.cnblogs.com/gepu1991/p/9135729.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!