Python - 我需要了解旧样式类吗?

时间:2011-02-18 21:41:56

标签: python class types language-features

我目前正在学习Python 2.6.5,并且我发现了旧样式类和新样式类。

我知道这些类仍然只是为了向后兼容而存在,并且它们在Python 3中被删除。

所以问题是:作为该语言的新手,我是否需要了解经典课程?

P.S。我正在学习Python 2,因为Python 3在框架中仍然不完全支持,我也想学习一些框架。当框架迎头赶上时,计划将转向Python 3,但在那之前,我是否需要担心旧的样式类?

2 个答案:

答案 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,这可能需要很长时间才能调试。

(你可能会说,我去过那里......)