PDA

Voir la version complète : Creation class dans un autre fichier



gr4ph0s
10/08/2014, 13h30
Salut tout le monde de retour après quelques problèmes avec mon pc ^^'. Je reprend tranquillement avec un pc bis et donc je voulais m’entraîner au python cependant je rencontre un petit problème comment faire pour utiliser une class(et ces methodes) d'un module dans un autre fichier?

J'ai bien trouvé ça http://www.cineversity.com/wiki/Python%3A_Including_Classes/ mais des que je rajoute une méthode dans MyClass.py et que je l'appel dans mon plugin j'ai une erreur du type :AttributeError: MyClass instance has no attribute 'maFonction'. Alors que pourtant voici mon code dans mon plugin


__currdir__ = os.path.dirname(__file__)
if __currdir__ not in sys.path:
sys.path.insert(0, __currdir__)
from export_nx3 import *




if (id == MY_BUTTON):
s = export_nx3()
print s.name #ça marche niquel
s.salut() #ça met une erreur
return True


et dans mon export_nx3.py


class export_nx3():
def __init__(self, name = 'export_nx3'): #The constructor with a required name parameter
self.name = name #Sets up the name parameter to work


def salut(self):
print("salut")


En passant, je suis avec la R15 y'a t'il moyen de load des DLL 32bits car après quelque test sur une DLL perso j'ai pu l'utiliser uniquement en 64bits, pas très embêtant vu que la R15 est only x64 mais bon je demande on sais jamais ^^'

Merci d'avance en tout cas :)

oli_d
10/08/2014, 16h58
Si tu arrives à récupérer l'attribut s.name c'est que le fichier a bien été chargé, la méthode s.salut() devrait donc fonctionner. Vérifie en faisant un print dir(s) que la méthode salut apparait dans la liste. Si elle n'y est pas, vérifie bien que tu n'aies pas 2x un fichier nommé export_nx3 dans le sys.path, dont un n'aurait pas la méthode salut

gr4ph0s
10/08/2014, 17h27
Merci de ta réponse cependant voici le résultat __doc__,__init__,__module__,name je n'est donc pas ma fonction :/

Dans mon dossier pourtant je n'ai que ces deux fichiers (et un dossier res contenant mon icon)

Main.pyp => http://pastebin.com/uCbs9b33
export_nx3.py =>http://pastebin.com/BhVb4nzG


Apres check de tout les dossier de sys.path je n'es pas d'export_nx3.py ^^'

EDIT 2 : Bon après changement de nom complètement random ça marche... j'ai du mal regarder en tout cas je te remercie énormément ! :D