python调用实例做父类_Python super() 调用父类方法, 但是父类中 self 并不是父类的实例而是子类的实例?...
慕慕森
说一下self究竟是什么.
写这个的时候也没查阅文档,有些说法可能不是很准确.
类方法的第一个参数self是实例本身,也就是A=X()这个A.
In [1]: class A(object):
...: def get_self(self):
...: return self
...:
In [2]: instance = A()
In [3]: instance.get_self() == instance
Out[3]: True
这个还是很清楚的,我们确定了这个之后,再转头去看你举的例子.我们都知道,子类的方法会覆盖父类的同名方法.先看下边的例子:
class A(object):
def a(self):
pass
def b(self):
pass
class B(A):
def b(self):
pass
def __init__(self):
print super(B,self).a == self.a //True
print super(B,self).b == self.b //False
def main():
B()
if __name__ == '__main__':
main()
我们看到,在子类没有覆盖父类的方法时,子类的方法是等于父类的方法的,很纯粹的等于,内存中地址都是一样的.所以你那个例子中super().f()就和直接f()没区别的.同样,在子类的实例里也不会莫名其妙冒出来一个父类的实例作为self参数传给f()方法,而且,你子类的init方法覆盖了父类的init方法,所以父类的init方法根本就没有执行.从那个角度来说,都是万万不会等于父类初始化的值的.
python调用实例做父类_Python super() 调用父类方法, 但是父类中 self 并不是父类的实例而是子类的实例?...相关推荐
- python怎么做项目_听说你没有python项目可做,我教你个方法
原标题:听说你没有python项目可做,我教你个方法 学习了一段时间的Python,最近出现了"饥荒",感觉需要多看些代码,多学习学习别人做些什么,但却不知道做点什么来进行练习. ...
- python新式类c3算法_Python新式类的方法解析顺序MRO与Super
新式类与经典类的方法解析顺序 MOR(方法解析顺序) 经典类:深度优先 DFS python3以前 新式类:广度优先 python2.2 新式类:广度优先的C3算法实现(拓扑排序) BFS pytho ...
- python类是实例的工厂_Python设计模式之工厂方法模式实例详解
本文实例讲述了Python设计模式之工厂方法模式.分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类, ...
- pythonsuper用法_python super函数使用方法详解
一.super函数简介 python内置函数super()主要用于类的多继承中,用来查找并调用父类的方法,所以在单重继承中用不用 super 都没关系:但是,使用 super() 是一个好的习惯.一般 ...
- python私有变量什么意思_python为什么有私有方法和变量
1. 访问安全,其实也没有决定的安全 >>> class humer(object): ... def __init__(self, name): ... self.name = n ...
- python tkinter库函数详解_Python使用tkinter库进行GUI编程中常用事件处理方式汇总
在Python GUI编程中,控件响应事件处理是常用的操作.tkinter库中事件类型有哪些?事件绑定方式有几种?如何编写事件处理函数?这些都是必须要面对的问题.今天,我们对上述内容进行简要汇总. 事 ...
- 用python的tkinter做游戏(八)—— 实现图片在tkinter中自适应大小(自动匹配窗口)
用python的tkinter做游戏 系列: 用python自带的tkinter做游戏(一)-- 贪吃蛇 篇 用python自带的tkinter做游戏(二)-- 俄罗斯方块 篇 用python自带的t ...
- [转载] python cmp函数比较字典_Python 字典(Dictionary) cmp()方法
参考链接: Python cmp方法 Python 字典(Dictionary) cmp()方法 描述 Python 字典(Dictionary) cmp() 函数比较两个字典元素. 语法 cmp() ...
- python编译成c代码_python如何调用c编译好可执行程序
以下总结出几种在Python 中调用 C/C++ 代码的方法 -------------------------------------------------------------------- ...
最新文章
- feed流和瀑布流_产品PM必备的Feed流和瀑布流应用场景
- 模仿百度搜索框,进行联想搜索
- ofbiz中的数据模型
- Gentle中的数据表实体类相关自定义属性的设置和获得
- mysql事务处理什么意思_mysql事务是什么意思
- matlab中将小数四舍五入,matlab 四舍五入 保留至指定小数(图)
- C++数据结构04--顺序栈的实现
- [...]ubuntu rvm rails 安装完之后消失的解决方法
- 中国经济蓝皮书发布 该死的房价下降成定局
- Linux内核IP Queue机制的分析
- JavaEE 保存文件获取绝对路径getResource()和servletContext.getRealPath(/)
- 刀具寿命预测研究方法
- Python爬虫入门教程13:高质量电脑桌面壁纸爬取
- 《AMNet: Deep Atrous Multiscale Stereo Disparity Estimation Networks》
- CYY网页提取助手2.0绿色版正式发布
- tornado源码分析-Application
- 模拟电路1(二极管半导体知识)
- Mysql添加新用户设置密码
- python之os模块操作文件与文件夹
- Nexus上传jar问题【史上最全,亲测可用】