在Python中子类化文件类会引发NameError

在Python中子类化文件类会引发NameError,python,file,subclass,Python,File,Subclass,我必须用python做一个非常简单的项目,在这个项目中,我将错误检查添加到内置的文件类中。到目前为止,我有: class RobustFile(file): def __init__(self,name,mode): file.__init__(self,name,mode) 我刚开始,但为了确保我没有把事情搞砸,我运行了它。好吧,我马上提出了一个命名错误,因为它无法识别文件。我试着调整它,我在网上查了一下,我用同样的格式复制了一些例子,然后…全都是NameError。

我必须用python做一个非常简单的项目,在这个项目中,我将错误检查添加到内置的文件类中。到目前为止,我有:

class RobustFile(file):
    def __init__(self,name,mode):
        file.__init__(self,name,mode)

我刚开始,但为了确保我没有把事情搞砸,我运行了它。好吧,我马上提出了一个命名错误,因为它无法识别文件。我试着调整它,我在网上查了一下,我用同样的格式复制了一些例子,然后…全都是NameError。有人能解释一下如何准确地将文件子类化吗?

在python 2.6.6中运行良好:

In [44]: class RobustFile(file):
    def __init__(self,name,mode):
        file.__init__(self,name,mode)
   ....: 

In [47]: fp = RobustFile('foo','w')

In [48]: fp.writelines('bar')

In [49]: fp.close()

您可能正在使用Python3,它不再具有文件类型


相反,如中所述,它有许多不同的流类型,这些流类型都是从_io.TextIOBase、_io.bufferedobase或_io.RawIOBase中的一个派生的,它们本身都是从_io.IOBase派生的。

这是一个奇怪的项目:Python中的内置文件类已经有错误检查。您使用的是什么版本的Python?此示例在Windows.1上使用Python 2.6.5运行良好!非常感谢你!那太有用了!我终于可以完成我的项目了!是的!我让它在2.6中工作!