2010-10-14 6 views
0

Je dois faire un projet très simple en python où j'ajoute une vérification d'erreur à la classe de fichier intégrée. Jusqu'à présent, j'ai:Classe de sous-classe de fichier dans Python déclenche NameError

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

Je viens juste de commencer, mais pour vous assurer que je ne l'avais pas sali quoi que ce soit, je couru. Eh bien, dès le départ, j'ai soulevé un NameError parce qu'il ne reconnaissait pas le fichier. J'ai essayé de le peaufiner, je l'ai cherché sur Internet, j'ai copié des exemples en utilisant le même format, et ... tous NameError. Quelqu'un peut-il faire la lumière sur la façon exacte de sous-classer les fichiers?

+2

C'est un projet étrange: la classe de fichier intégrée dans Python a déjà une vérification d'erreur. –

+0

Quelle version de Python utilisez-vous? Cet exemple fonctionne correctement avec Python 2.6.5 sous Windows. –

Répondre

1

fonctionne très bien en 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() 
7

Vous utilisez probablement Python 3, qui ne présente plus un type file.

Au lieu de cela, comme il est indiqué dans le Python 3 documentation's I/O Overview, il a un certain nombre de différents types de flux qui sont tous dérivés de l'un des _io.TextIOBase, _io.BufferedIOBase ou _io.RawIOBase, qui elles-mêmes proviennent de _io.IOBase.

+0

EXCEPTIONNEL! Merci beaucoup! C'est tellement utile! Je peux enfin finir mon projet! oui! Je l'ai obtenu en 2.6! – Chris

Questions connexes