zoukankan      html  css  js  c++  java
  • python中self和cls的区别

    1、self表示一个具体的实例本身。如果用了staticmethod,那么就可以无视这个self,将这个方法当成一个普通的函数使用。

    2、cls表示这个类本身

     1 >>> class A(object):
     2         def foo1(self):
     3             print "Hello",self
     4         @staticmethod
     5         def foo2():
     6             print "hello"
     7         @classmethod
     8         def foo3(cls):
     9             print "hello",cls
    10 
    11 
    12 >>> a = A()
    13 
    14 >>> a.foo1()          #最常见的调用方式,但与下面的方式相同
    15 Hello <__main__.A object at 0x9f6abec>
    16 
    17 >>> A.foo1(a)         #这里传入实例a,相当于普通方法的self
    18 Hello <__main__.A object at 0x9f6abec>
    19 
    20 >>> A.foo2()          #这里,由于静态方法没有参数,故可以不传东西
    21 hello
    22 
    23 >>> A.foo3()          #这里,由于是类方法,因此,它的第一个参数为类本身。
    24 hello <class '__main__.A'>
    25 
    26 >>> A                 #可以看到,直接输入A,与上面那种调用返回同样的信息。
    27 <class '__main__.A'>
  • 相关阅读:
    25号了
    9月特别日程
    26日 晴
    8月22日 出游时间更改
    雷雨过后
    28日 多云
    080826 小雨(补记)
    080822 阴
    27日 晴
    IOS 5 ARC机制 (一)
  • 原文地址:https://www.cnblogs.com/shengguorui/p/10237279.html
Copyright © 2011-2022 走看看