zoukankan      html  css  js  c++  java
  • 一文详解python的类方法,普通方法和静态方法

      首先形式上的区别,实例方法隐含的参数为类实例self,而类方法隐含的参数为类本身cls。 静态方法无隐含参数,主要为了类实例也可以直接调用静态方法。

      所以逻辑上,类方法被类调用,实例方法被实例调用,静态方法两者都能调用。主要区别在于参数传递上的区别,实例方法悄悄传递的是self引用作为参数,而类方法悄悄传递的是cls引用作为参数。

    接下来看用类和实例分别能否调用类属性

     

    故  实例方法(普通方法)应该由实例调用,类不能调用;

     

    类方法可以由类调用,而且因为传入了参数cls,故也可以由实例来调用。

    静态方法两者都能调用

     总结成一张表就是:

     注意类实例方法调用的结果和静态方法调用的结果的区别:

     

    实例方法(普通方法)——————————————————————随着实例属性的改变而改变

    类方法(无论是类调用还是实例调用)———————————————都是类属性的值,不随实例属性的变化而变化

    静态方法————————————————————————————不可以访问类属性,故直接输出传入方法的值

     

  • 相关阅读:
    JavaScript之美读书笔记一
    关于form与表单操作
    正则表达式中的字符转义
    [codeforces 391D2]Supercollider
    [AMPPZ 2013]Bytehattan
    [那些你所不知道的鬼畜写法]平衡树学习笔记
    [AHOI 2006][BZOJ 1269]文本编辑器editor
    [BZOJ 3622]已经没有什么好害怕的了
    [POI 2008]Mafia
    [POI 2008][BZOJ 1132]Tro
  • 原文地址:https://www.cnblogs.com/jayliu/p/9030725.html
Copyright © 2011-2022 走看看