zoukankan      html  css  js  c++  java
  • staticmethod写和不写有什么区别?【转】

    系统学python语法是好几年之前的事情了,印象中就是Python的黑魔法真的挺多的,一般你也用不到。

    今天就来讲一下staticmethod这个装饰器,是我这两天一直想记录下来的一个怪里怪气的东西。

    网上一般都说类静态方法要@staticmethod,而我实际试验不写也没啥问题的样子:

    我们知道在python中一切皆是对象,所以haha类自身也是一个对象,上面的代码和下面等价:

    就是往对象上赋值一个属性,保存一个函数。

    既然这样就可以实现静态函数了,那还要staticmethod干嘛?看下面的报错就知道了:

    通过类对象调用静态方法,python会自动加一个self到第一参数,而我们希望x()函数是静态方法,不需要self。

    这时候就需要@staticmethod来影响这个行为了:

    加上@staticmethod的haha类,无论是类还是对象都可以调用到x()方法,终于符合了类静态方法的正常行为表现。

    转自

    staticmethod写和不写有什么区别? | 鱼儿的博客
    https://yuerblog.cc/2018/10/29/why-use-staticmethod/

  • 相关阅读:
    hdu2604 矩阵快速幂
    自己对有上下界的网络流的理解
    自己对有上下界的网络流的理解
    POJ 2396 构造矩阵(上下流)
    POJ 2396 构造矩阵(上下流)
    hdu4940 有上下界的无源可行流判断
    hdu4940 有上下界的无源可行流判断
    hdu4515 小模拟
    hdu4515 小模拟
    hdu4901 枚举状态(找集合对S(xor) ==T(and))
  • 原文地址:https://www.cnblogs.com/paul8339/p/13673388.html
Copyright © 2011-2022 走看看