Bonjour,
J'utilise le framework twisted.
Je cherche à surcharger un serveur TELNET lors de la réception de données.
Lors de la réception de donnée, je souhaite effectuer le même traitement que la classe mère puis un traitement spécifique.
Mon souci est que je n'arrive pas a appeler la méthode de la classe mère (j'ai fait plusieurs test):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 from twisted.internet import reactor from twisted.conch.telnet import Telnet ... class TelnetServer (Telnet): """ partie server """ def connectionMade (self): global myClient print "server connection made" myServer = self ... def dataReceived(self, data): "As soon as any data is received, write it back." print "dataReceived: vous avez envoye :", data ## appel de la methode mere dataReceived print super(Telnet,self) #Telnet.dataReceived(data) #print super(type(Telnet), TelnetServer).__class__ #super(type(Telnet), TelnetServer).dataReceived(data) ## traitement "qui va bien"AvecFile "/usr/local/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 220, in _dataReceived
rval = self.protocol.dataReceived(data)
File "simpleproxytelnet.py", line 45, in dataReceived
print super(Telnet,self)
exceptions.TypeError: must be type, not classobj
AvecTelnet.dataReceived(data) j'obtiens:
Telnet.dataReceived(data)
exceptions.TypeError: unbound method dataReceived() must be called with Telnet instance as first argument (got str instance instead)
Comment appeler twisted.conch.telnet.Telnet.dataReceived ?Telnet.dataReceived(data) j'obtiens:
File "simpleproxytelnet.py", line 48, in dataReceived
super(type(Telnet), TelnetServer).dataReceived(data)
exceptions.AttributeError: 'super' object has no attribute 'dataReceived'
Je viens du monde JAVA ou la méthode super permet ce genre de choses, mais là je sèche.
Merci par avance,
eric llusca.
Partager