Python中file类的子类化会引发NameE

2024-04-24 23:13:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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


Tags: 文件项目nameself名称initmodedef
2条回答

在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,它不再具有file类型。在

相反,如Python 3 documentation's I/O Overview中所述,它有许多不同的流类型,它们都是从_io.TextIOBase_io.BufferedIOBase或{}之一派生的,这些流类型本身就是从_io.IOBase派生的。在

相关问题 更多 >