我目前正在学习Python 2.6.5,并且我发现了旧样式类和新样式类。
我知道这些类仍然只是为了向后兼容而存在,并且它们在Python 3中被删除。
所以问题是:作为该语言的新手,我是否需要了解经典课程?
P.S。我正在学习Python 2,因为Python 3在框架中仍然不完全支持,我也想学习一些框架。当框架迎头赶上时,计划将转向Python 3,但在那之前,我是否需要担心旧的样式类?
答案 0 :(得分:13)
没有。不要打扰。只需继承object
(或继承自object
的类)的所有类,您就可以继续了。然后,当您转换到Python 3时,您可以忘记这一点语法。
此时使用甚至学习旧式课程没有任何好处。
因此,请确保所有类声明都如下所示:
class foo(object):
...
(或继承自 继承自object
的{{1}}以外的其他内容),然后假装这是一直以来的方式!
答案 1 :(得分:4)
虽然我同意Daniel DiPaolo你不应该在你的代码中使用旧式类,但有时候你需要稍微理解它们。
例如,对于旧式类,您不能使用super
来调用父方法 - 当您尝试子类时,例如urllib2.Request
类,这可能会让您感到困惑。如果你这样做而没有意识到你会得到神秘的错误super() argument 1 must be type, not classobj
,这可能需要很长时间才能调试。
(你可能会说,我去过那里......)