Python2与Python3中关于最上层类继承上的一点小差异
来源:互联网 发布:ansible.cfg mac 编辑:程序博客网 时间:2024/06/06 09:07
今天调代码的时候遇到了一点问题,定位到最后最终发现是Python版本的问题。解析器的升级实在是不方便,最终只好出现了两种不同的代码。
问题出现在类的继承上,这方面我基础薄弱,很多时候都是参考别人的代码。结果最终发现别人用的好好的东西在我这里居然不灵了!如下面的代码:
#!/usr/bin/python
class Demo:
pass
print(Demo.__base__)
在Python3中,上面的代码可以正常运行最终输出如下结果:
E:\WorkSpace\programme_language\python\OOP>pythonbase.py
<class'object'>
但是,上面的代码在Python2中运行会报错。这个问题之前就已经在博客中简单提了一下。倒不是自己忘了,还是因为自己的知识太薄弱,这方面了解不多。类似的类在作为基类进行新的类创建并使用的时候就会遇到问题,最根本的原因就是Python2不能够隐性默认继承object。而解析器最终找不到最基础的类的父类。
如果在Python2中,创建一个类的时候如果什么都不继承那就需要显式继承object。这就是与Python3不一样的地方。
再进一步,其实这个地方还是有途径可以实现通用性代码的。那就是全都写成Python2的风格,其实Python3下面也能够正常运行。只可惜我的代码是从一个Python3的参考范本来的,目前在不同的机器上暂时就保存俩版本了,倒也无伤大雅。
阅读全文
0 0
- Python2与Python3中关于最上层类继承上的一点小差异
- Python2与Python3中__bool__方法的差异
- python2 与python3的print差异
- python2.7与python3中print的一点不同之处
- Python3与Python2版本的一点区别
- Python2与Python3在不同类的对象比较上的差异
- Python2 和 Python3 中默认编码的差异
- python3与python2中字符串的区别
- python3学习笔记1:python3与Python2中的差异
- python3.x和python2.x的translate与maketrans函数使用差异
- python3.3 类与继承 小例
- 在Python2.x和Python3.x中dict.keys()的差异
- 关于Python2.X与Python3.X的编码问题
- 关于Python2与Python3的不同之处(持续更新)
- Java中继承的一点小知识
- Python2与Python3的区别
- python2与python3的区别
- python2与python3的区别
- CodeForces 831 B.Keyboard Layouts(水~)
- 找不同程序
- spark环境运行程序遇到几个坑
- 25.ContentProvider自定义内容提供者与ContentResolver内容访问者
- AndroidStudio logcat颜色设置
- Python2与Python3中关于最上层类继承上的一点小差异
- JS特效之简单动画封装
- 关于Delphi中Published和Public的区别
- linux系统虚拟机的安装与调试
- PC端windows与虚拟机linux之间文件的传输方式总结
- 使MFC中的ListCtrl控件的列宽固定不可变
- Mac下secureCRT连接VMware Fusion上面的虚拟机超时的解决方法
- Axis2入门小项目-使用RPC方式调用WebService
- CyclicBarrier 公共屏障点