为了账号安全,请及时绑定邮箱和手机立即绑定

继承对象的Python类

继承对象的Python类

收到一只叮咚 2019-06-06 14:50:56
继承对象的Python类继承类声明是否有任何原因?object?我只是找到了一些代码来做这个,但我找不到一个很好的理由。class MyClass(object):     # class code follows...
查看完整描述

3 回答

?
森栏

TA贡献1810条经验 获得超5个赞

Python3.x:
class MyClass(object):=新样式类
class MyClass:=新样式类(隐式从对象继承)

Python2.x:
class MyClass(object):=新样式类
class MyClass: = 旧式班

说明:

在Python3.x中定义基类时,可以将对象从定义中删除。然而,这会为严重难以跟踪的问题…打开大门。

Python在Python2.2中引入了新的样式类,到目前为止,旧风格的类已经非常老了。旧式课程的讨论是埋在2.x文档里,在3.x文档中不存在。

问题是Python2.x中旧样式类的语法与Python3.x中新样式类的替代语法相同。..Python2.x仍然被广泛使用(例如GAE、Web2Py),任何代码(或编码器)无意中将3.x风格的类定义引入2.x代码,最终都会出现一些严重过时的基对象。而且因为旧式课程没有被任何人注意到,他们很可能不知道是什么袭击了他们。

所以,把它拼出来,省去一些2.x开发人员的眼泪吧。


查看完整回答
反对 回复 2019-06-06
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

是的,这是一个“新样式”对象。这是python2.2中引入的一个特性。

新样式对象有一个与经典对象不同的对象模型,并且有些东西无法与旧样式对象正常工作,例如,super()@property和描述符。看见这篇文章关于什么是新样式类的良好描述。

因此,链接以获取对差异的描述:在Python中旧样式类和新样式类有什么区别?


查看完整回答
反对 回复 2019-06-06
  • 3 回答
  • 0 关注
  • 562 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信