zoukankan      html  css  js  c++  java
  • 关于python的类成员方法允许静态调用的机制

    这里有几个结论:

    1、py的class里面的方法都可以直接调用而不用先实例化,但是要传self参数,也可以实例化后使用,实现的效果不一样

    2、加了@classmethod修饰的成员方法,有self参数,偏向于获取不需要__init__调用的成员,直接调用的时候,不用self传参,读取的成员属性是未__init__的值,即使__init__有执行(实例化)

    3、加了@staticmethod修饰的成员方法,偏向于获取该成员方法本身,没有self参数

    验证代码如下:

    1、

     注意,直接调用hi的时候,是需要传入参数的,因为直接调用相当于静态调用,而根据第三点,静态方法是没有self参数的,所以实际上hi的参数就是必须要传的真参,但是传进去的self是b,所以会报h不存在。

    2、

    注意:此处h的值没有受__init__的影响

    3、

    注意:此处hi成员方法已经没有self参数,对比 classmethod更加的孤立。

    暗夜之中,才见繁星;危机之下,暗藏转机;事在人为,为者常成。
  • 相关阅读:
    Fleury算法
    2012 MultiUniversity Training Contest 2
    高斯若尔当消元法(线性代数)
    hdu4307(最小割)
    hdu4305(生成树计数)
    hdu4318(最短路)
    hdu4309(网络流)
    hdu4313(生成树)
    生成树计数
    MYSQL 远程登录及常用命令
  • 原文地址:https://www.cnblogs.com/zenghansen/p/14955596.html
Copyright © 2011-2022 走看看