Pages : 1
#1 Le 11/06/2014, à 07:22
- GP974
[Résolu]List() Python
Bonjour j'ai un problème avec une de mes listes python
j'ai coder un objet et je désire faire une liste de cet objet
J'ai donc fais une boucle qui prend en entrée un tableau (obtenu via sqlite) et qui pour chaque colonne me fais mon objet et l'ajoute a ma liste d'objet si il correspond a ce que je cherche.
donc voila la boucle
class TabHost(object):
def __init__(self):
self.host = ""
self.ip = ""
self.port = list()
for response in responseRequest: #Iterate tab request
for rhost in listeHost: #Iterate tab ListHost
if response.Host != "NULL":
if response.Host == rhost.host: #Host existant
#fonctionne
else:#Si l'host n'existe pas on l'ajoute au tableau
tempHost2 = TabHost
tempHost2.port = list()
tempHost2.host = response.Host
tempHost2.ip = response.IP
if response.Port != "NULL":
tempHost2.port.append(response.Port + "/" + response.PortName)
print "Creation host:" + tempHost2.host + " Port:" + tempHost2.port[0]
listeHost.append(tempHost2)
del tempHost2
print "Verif host:" + listeHost[-1].host + " Port:" + listeHost[-1].port[0]
for rhost in listeHost:
print "New host"
print "ip: " + rhost.ip
print "hostname:" + rhost.host
print "=Port="
for rport in rhost.port:
print rport
print "======================="
for rhost2 in listeHost:
print "New host"
print "ip: " + rhost2.ip
print "hostname:" + rhost2.host
print "=Port="
for rport2 in rhost2.port:
print rport2
Donc quand j'affiche les résultats juste après l'ajout tous vas bien
Mais après la sortie de la boucle après le print "======================="
Mon tableaux n'est composé que de X fois le dernier objet
si j'ai 8 objets dans mon tableau les 8 objets sont 8 fois le dernier rajouté au lieu d’être 8 objets différents
je ne comprend pas pourquoi quelqu'un a une idée ?
Dernière modification par GP974 (Le 11/06/2014, à 08:32)
Hors ligne
#2 Le 11/06/2014, à 08:11
- tiramiseb
Re : [Résolu]List() Python
Salut
J'ai survolé ton code très rapidement, je ne l'ai pas testé, mais il y a une erreur flagrante : tu n'instancies pas ta classe TabHost :
tempHost2 = TabHost
à remplacer par :
tempHost2 = TabHost()
Par ailleurs, quelques commentaires :
- pour instancier une liste, il est habituel de faire "xxx = []" et non "xxx = list()"
- dans ta classe TabHost, tu configures déjà self.port = list(), donc pourquoi refaire la même chose dans ta boucle ?
- pour mettre des valeurs dans des chaînes, évite l'opérateur + et privilégie la notation "".format(xxx) (ou, à la limite, "" % (xxx))
Dernière modification par tiramiseb (Le 11/06/2014, à 08:15)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#3 Le 11/06/2014, à 08:14
- tiramiseb
Re : [Résolu]List() Python
Par ailleurs, tu n'as pas de code dans ton "if response.Host == rhost.host:"... j'imagine que c'est pour simplifier ce que tu nous montres et qu'en réalité il y en a... car sinon, ce code ne pourra pas fonctionner...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#4 Le 11/06/2014, à 08:25
- GP974
Re : [Résolu]List() Python
Ok merci
j'avais déjà essayer et je me retrouve avec un
File "/home/guillaume/Bureau/views.py", line 148, in getStat
tempHost2 = TabHost()
TypeError: 'module' object is not callable
Pour le reste
1)oui oui il y a du code dans la partie if response.Host == rhost.host:
2)Corrigé merci
3)Ok
Hors ligne
#5 Le 11/06/2014, à 08:29
- tiramiseb
Re : [Résolu]List() Python
On dirait que tu as un module (que tu as importé) qui s'appelle TabHost, et ça entrerait en conflit avec ta classe TabHost...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#6 Le 11/06/2014, à 08:29
- GP974
Re : [Résolu]List() Python
Ok la bonne ligne est
tempHost2 = TabHost.TabHost()
ma déclaration est dans un fichier separé
import ObjHost as TabHost
Merci beaucoup Tiramiseb
Hors ligne
#7 Le 11/06/2014, à 08:30
- tiramiseb
Re : [Résolu]List() Python
Ah ben oui, si tu ne dis pas tout, on ne peut pas bien t'aider...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
Pages : 1