zoukankan      html  css  js  c++  java
  • staticmethod、classmethod的使用

                     staticmethod

    首先要明白两个概念

      绑定方法:但凡是定义在类的内部,并且没有被任何装饰器修饰过的方法,就是绑定方法,并且有自动传值功能。类直接调用该方法时,改方法叫做类的函数属性;对象在调用该方法时,该方法叫绑定方法。

    示例:

      只要是类中的函数没有被装饰器修饰,就会自动传值,该函数在对象调用时为绑定方法;类直接调用时,始终为功能函数

    class  A:
        # @staticmethod
        def  foo(self):
            print("AAA")
    
    a  = A()
    print(a.foo)
    print(A.foo)#只要是写成"类名.方法名"的格式,不管该方法在类中是否被装饰器修饰,最终打印得到的都是函数方法,因为对于这种
    # 调用方式,类中的方法始终都是类中的方法函数

      当类中的函数被装饰器装饰后,在对象调用时和用类直接调用时,均为功能函数或方法函数

    class  A:
        @staticmethod
        def  foo():
            print("AAA")
    
    a  = A()
    print(a.foo)
    print(A.foo)#只要是写成"类名.方法名"的格式,不管该方法在类中是否被装饰器修饰,最终打印得到的都是函数方法,因为对于这种
    # 调用方式,类中的方法始终都是类中的方法函数
    

      

    staticmethod

      作用:

        1.解除类中绑定方法的绑定,使该方法不需要通过"对象.方法名"的形式进行调用,反而直接使用"类名.方法名"的形式调用,使该方法成为类的方法直接使用。

        2.方法在类中定义时,在类名后的()内不需要些self

    示例:

      

    class  A:
        @staticmethod
        def  foo():
            print("AAA")
    
    A.foo#使用该方式,可直接调用类中的foo方法,不需要实例化调用
    

      classmethod

  • 相关阅读:
    npm 学习笔记
    Splash 学习笔记
    lodash 学习笔记
    运用 CSS in JS 实现模块化
    运用 CSS methodologies 去实现模块化
    less 学习笔记
    初探爬虫 ——《python 3 网络爬虫开发实践》读书笔记
    mitmproxy 使用笔记
    Appium 使用笔记
    Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记
  • 原文地址:https://www.cnblogs.com/liuyinzhou/p/7881032.html
Copyright © 2011-2022 走看看