zoukankan      html  css  js  c++  java
  • Python3的静态方法和类方法

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

    将它们分别包装在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'>
  • 相关阅读:
    今天的进度又慢了
    继续还有一些基本功能
    没什么事情
    今天好冷啊
    估计下周一就不去了
    再次出发
    诡异的php curl error Empty reply from server
    postgresql interval 字段拼接
    使用root用户通过SSH登录Linux实例时报“Permission denied, please try again”的错误
    pgsql 记录类型
  • 原文地址:https://www.cnblogs.com/gepu1991/p/9135729.html
Copyright © 2011-2022 走看看