我目前正在学习Python2.6.5,我发现了旧的样式类和新的样式类。
我知道这些类仍然存在,只是为了向后兼容性,并且在Python 3中被删除。
所以问题是:作为语言的新手,我需要学习经典类吗?
我正在学习Python 2,因为Python 3在框架中仍然不完全支持,我也想学习一些框架。我们的计划是在框架迎头赶上的时候转向Python 3,但在此之前,我是否需要担心旧的样式类?
发布于 2011-02-18 21:43:51
不是的。别费神。只需从object (或从object继承的类)继承所有的类,就可以了。然后,当您转换到Python 3时,您可以忘记这一点语法。
在这一点上使用甚至学习旧风格的类是没有好处的。
因此,只需确保所有类声明都如下所示:
class foo(object):
...(或者是从object以外的继承自object的东西继承),然后假装它一直是这样的!
发布于 2011-02-18 22:09:14
虽然我同意Daniel DiPaolo的观点,即您永远不应该在代码中使用旧风格的类,但有时您需要稍微理解它们。
例如,对于旧的样式类,您不能使用super来调用父方法,当您尝试和子类(例如,urllib2.Request类)时,这可能会咬你一口。如果您没有意识到这一点,您将得到神秘的错误super() argument 1 must be type, not classobj,这可能需要很长时间来调试。
(你可能知道,我去过那里.)
https://stackoverflow.com/questions/5046903
复制相似问题