博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 中的self, cls, super的使用和理解
阅读量:4699 次
发布时间:2019-06-09

本文共 788 字,大约阅读时间需要 2 分钟。

1. self用于实例的方法定义中

2. cls 用于类方法的定义

3. super 用于调用子类的父类    class A(object):

  pass

 

 class B(A):

  def __init__(self):

    super(A, self).__init__()

 

普通的方法,第一个参数需要是self,它表示一个具体的实例本身。

如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身。
>>> class A(object):
    def foo1(self):
        print "Hello",self
    @staticmethod
    def foo2():
        print "hello"
    @classmethod
    def foo3(cls):
        print "hello",cls
       
>>> a = A()
>>> a.foo1()          #最常见的调用方式,但与下面的方式相同
Hello <__main__.A object at 0x9f6abec>
>>> A.foo1(a)         #这里传入实例a,相当于普通方法的self
Hello <__main__.A object at 0x9f6abec>
>>> A.foo2()          #这里,由于静态方法没有参数,故可以不传东西
hello
>>> A.foo3()          #这里,由于是类方法,因此,它的第一个参数为类本身。
hello <class '__main__.A'>
>>> A                 #可以看到,直接输入A,与上面那种调用返回同样的信息。
<class '__main__.A'>

转载于:https://www.cnblogs.com/hanxiangmin/p/6542825.html

你可能感兴趣的文章
从SourceForge上获取CVS管理的开源代码
查看>>
keepalived + LVS实现高可用负载均衡集群
查看>>
JAVA中isEmpty、null、""的区别
查看>>
沙滩球的理解
查看>>
SpringMVC入门笔记
查看>>
Oracle trunc()函数的用法
查看>>
Linux——SUID、SGID、SBIT简介
查看>>
P1149 火柴棒等式
查看>>
《Java并发编程实战》第十章 避免活跃性危急 读书笔记
查看>>
将字符串使用md5加密
查看>>
20171026_Python学习第二周四次课
查看>>
各大主流.Net的IOC框架性能测试比较
查看>>
堆排序算法
查看>>
OC基础15:内存管理和自动引用计数
查看>>
【Deep Learning】genCNN: A Convolutional Architecture for Word Sequence Prediction
查看>>
IT增值服务,客户案例(一)--山东青岛在职人士,2年.Net经验,转Java开发半年
查看>>
jQuery 文件碎片
查看>>
Cocos2d-x之MenuItem
查看>>
OpenGL+VS2013+WIN7(64)组态
查看>>
curl命令具体解释
查看>>