Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-我需要学习旧式类吗?_Python_Class_Types_Language Features - Fatal编程技术网

Python-我需要学习旧式类吗?

Python-我需要学习旧式类吗?,python,class,types,language-features,Python,Class,Types,Language Features,我目前正在学习Python2.6.5,我发现了关于旧样式类和新样式类的知识 我知道这些类仍然存在只是为了向后兼容,它们在Python3中被删除了 所以问题是:作为语言的新手,我需要学习经典课程吗? 另外,我正在学习Python2,因为Python3在框架中还没有完全得到支持,我也想学习一些框架。计划是在框架迎头赶上时转向Python 3,但在此之前,我需要担心旧式类吗?不,不用麻烦了。只需从对象(或从对象继承的类)继承您的所有类即可。然后,当您转换到Python3时,您可以忘记一些语法 在这一点

我目前正在学习Python2.6.5,我发现了关于旧样式类和新样式类的知识

我知道这些类仍然存在只是为了向后兼容,它们在Python3中被删除了

所以问题是:作为语言的新手,我需要学习经典课程吗?


另外,我正在学习Python2,因为Python3在框架中还没有完全得到支持,我也想学习一些框架。计划是在框架迎头赶上时转向Python 3,但在此之前,我需要担心旧式类吗?

不,不用麻烦了。只需从
对象
(或从
对象
继承的类)继承您的所有类即可。然后,当您转换到Python3时,您可以忘记一些语法

在这一点上,使用或甚至学习旧式课程没有任何好处

因此,只需确保所有类声明如下所示:

class foo(object):
    ...

(或者从
对象
以外的对象继承,而该对象确实从
对象
继承),然后假装这是它一直以来的方式

尽管我同意Daniel DiPaolo的观点,即在代码中永远不需要使用旧式类,但有时您需要稍微了解它们

例如,对于旧样式的类,您不能使用
super
调用父方法,这可能会在您尝试创建子类(例如
urllib2.Request
类)时影响您。如果在没有意识到的情况下执行此操作,将得到一个神秘的错误
super()参数1必须是type,而不是classobj
,这可能需要很长时间才能调试

(你可能知道,我去过那里……)