Bonjour à tous
Suite à mon précédent post, Bruno m'a conseillé de créer une cl asse
'mere' sous forme de module (MonServeur.py) plutot que de classe. ce
module pourrait gérer d'autres classes qui pourraient partager plus
facilement ses variables sans avoir à les passer dans les __init__ .
MonServeur.py (classe 'mere')
import HttpServer
http = HttpServer.HttpServer()
jabber = JabberClient.client()
HttpServer.py
class HttpServer(object):
def __init__(self):
print "http started"
Ou mettre mon __init__ dans MonServeur.py ?
Je dois créer un main.py qui instancie ma classe principale, MonServeur
? Comment initialiser MonServeur ?
main.py
import MonServeur
srv = MonServeur() ?
Les variables 'globales' que les classes devront partager (comme http)
plus haut, pas besoin de specifier self. ?
J'espere avoir été clair ;(
Bonjour à tous
Suite à mon précédent post, Bruno m'a conseillé de créer une cl asse
'mere' sous forme de module (MonServeur.py) plutot que de classe. ce
module pourrait gérer d'autres classes qui pourraient partager plus
facilement ses variables sans avoir à les passer dans les __init__ .
MonServeur.py (classe 'mere')
import HttpServer
http = HttpServer.HttpServer()
jabber = JabberClient.client()
HttpServer.py
class HttpServer(object):
def __init__(self):
print "http started"
Ou mettre mon __init__ dans MonServeur.py ?
Je dois créer un main.py qui instancie ma classe principale, MonServeur
? Comment initialiser MonServeur ?
main.py
import MonServeur
srv = MonServeur() ?
Les variables 'globales' que les classes devront partager (comme http)
plus haut, pas besoin de specifier self. ?
J'espere avoir été clair ;(
Bonjour à tous
Suite à mon précédent post, Bruno m'a conseillé de créer une cl asse
'mere' sous forme de module (MonServeur.py) plutot que de classe. ce
module pourrait gérer d'autres classes qui pourraient partager plus
facilement ses variables sans avoir à les passer dans les __init__ .
MonServeur.py (classe 'mere')
import HttpServer
http = HttpServer.HttpServer()
jabber = JabberClient.client()
HttpServer.py
class HttpServer(object):
def __init__(self):
print "http started"
Ou mettre mon __init__ dans MonServeur.py ?
Je dois créer un main.py qui instancie ma classe principale, MonServeur
? Comment initialiser MonServeur ?
main.py
import MonServeur
srv = MonServeur() ?
Les variables 'globales' que les classes devront partager (comme http)
plus haut, pas besoin de specifier self. ?
J'espere avoir été clair ;(
Bonjour à tous
Suite à mon précédent post, Bruno m'a conseillé
de créer une classe
'mere' sous forme de module (MonServeur.py) plutot que de classe.
ce
module pourrait gérer d'autres classes qui pourraient partager plus
facilement ses variables sans avoir à les passer dans les __init__ .
MonServeur.py (classe 'mere')
import HttpServer
http = HttpServer.HttpServer()
jabber = JabberClient.client()
HttpServer.py
class HttpServer(object):
def __init__(self):
print "http started"
Ou mettre mon __init__ dans MonServeur.py ?
Je dois créer un main.py qui instancie ma classe principale,
MonServeur
? Comment initialiser MonServeur ?
main.py
import MonServeur
srv = MonServeur() ?
Les variables 'globales' que les classes devront partager (comme http)
plus haut, pas besoin de specifier self. ?
J'espere avoir été clair ;(
Bonjour à tous
Suite à mon précédent post, Bruno m'a conseillé
de créer une classe
'mere' sous forme de module (MonServeur.py) plutot que de classe.
ce
module pourrait gérer d'autres classes qui pourraient partager plus
facilement ses variables sans avoir à les passer dans les __init__ .
MonServeur.py (classe 'mere')
import HttpServer
http = HttpServer.HttpServer()
jabber = JabberClient.client()
HttpServer.py
class HttpServer(object):
def __init__(self):
print "http started"
Ou mettre mon __init__ dans MonServeur.py ?
Je dois créer un main.py qui instancie ma classe principale,
MonServeur
? Comment initialiser MonServeur ?
main.py
import MonServeur
srv = MonServeur() ?
Les variables 'globales' que les classes devront partager (comme http)
plus haut, pas besoin de specifier self. ?
J'espere avoir été clair ;(
Bonjour à tous
Suite à mon précédent post, Bruno m'a conseillé
de créer une classe
'mere' sous forme de module (MonServeur.py) plutot que de classe.
ce
module pourrait gérer d'autres classes qui pourraient partager plus
facilement ses variables sans avoir à les passer dans les __init__ .
MonServeur.py (classe 'mere')
import HttpServer
http = HttpServer.HttpServer()
jabber = JabberClient.client()
HttpServer.py
class HttpServer(object):
def __init__(self):
print "http started"
Ou mettre mon __init__ dans MonServeur.py ?
Je dois créer un main.py qui instancie ma classe principale,
MonServeur
? Comment initialiser MonServeur ?
main.py
import MonServeur
srv = MonServeur() ?
Les variables 'globales' que les classes devront partager (comme http)
plus haut, pas besoin de specifier self. ?
J'espere avoir été clair ;(
Bin, disons que si tu faisais la distinction entre classe et objet...
Heu, attend, je l'ai déjà dis, ça, non ???
Bin, disons que si tu faisais la distinction entre classe et objet...
Heu, attend, je l'ai déjà dis, ça, non ???
Bin, disons que si tu faisais la distinction entre classe et objet...
Heu, attend, je l'ai déjà dis, ça, non ???
Merci
donc si je comprends bien mon module MonServeur.py pourra lancer mes
différents services (autres classes) et gérer mes variables globales
auxquelles ils pourront avoir access
MonServeur.py
import HttpServer
import JabberClient
config = loadConfig() # une method qui lit un fichier de config (en
xml) et renvoie un dico
http = HttpServer.HttpServer() # init de mon serveur HttpServer perso
jabber = JabberClient.JabberClient() # j'initialise mon client jabber
perso
Il ne me reste plus, dans main.py de faire import MonServeur pour
instancier MonServeur.
Est-ce une bonne idée de tout lancer à ce moment la ou vaut il mieux
faire une methode MonServeur.init() par exemple ?
Ensuite, dans HttpServer.py, comment alors acceder à MonServeur.config ?
__main__.MonServeur.config ?
c'est moche !!
Autre chose, il me semble avoir vu qu'on peut aussi définir un module
dans un dossier (un dossier + plusieurs fichiers py). dans ce cas, il
faut utiliser un fichier __init__.py pour l'init ? et les fonctions
"spéciales" (__getattr__...) ou les mettre ?
Bin, disons que si tu faisais la distinction entre classe et objet...
Heu, attend, je l'ai déjà dis, ça, non ???
Oui en effet ;) Je dirai : un objet est issu d'une classe ?
Merci :)
Merci
donc si je comprends bien mon module MonServeur.py pourra lancer mes
différents services (autres classes) et gérer mes variables globales
auxquelles ils pourront avoir access
MonServeur.py
import HttpServer
import JabberClient
config = loadConfig() # une method qui lit un fichier de config (en
xml) et renvoie un dico
http = HttpServer.HttpServer() # init de mon serveur HttpServer perso
jabber = JabberClient.JabberClient() # j'initialise mon client jabber
perso
Il ne me reste plus, dans main.py de faire import MonServeur pour
instancier MonServeur.
Est-ce une bonne idée de tout lancer à ce moment la ou vaut il mieux
faire une methode MonServeur.init() par exemple ?
Ensuite, dans HttpServer.py, comment alors acceder à MonServeur.config ?
__main__.MonServeur.config ?
c'est moche !!
Autre chose, il me semble avoir vu qu'on peut aussi définir un module
dans un dossier (un dossier + plusieurs fichiers py). dans ce cas, il
faut utiliser un fichier __init__.py pour l'init ? et les fonctions
"spéciales" (__getattr__...) ou les mettre ?
Bin, disons que si tu faisais la distinction entre classe et objet...
Heu, attend, je l'ai déjà dis, ça, non ???
Oui en effet ;) Je dirai : un objet est issu d'une classe ?
Merci :)
Merci
donc si je comprends bien mon module MonServeur.py pourra lancer mes
différents services (autres classes) et gérer mes variables globales
auxquelles ils pourront avoir access
MonServeur.py
import HttpServer
import JabberClient
config = loadConfig() # une method qui lit un fichier de config (en
xml) et renvoie un dico
http = HttpServer.HttpServer() # init de mon serveur HttpServer perso
jabber = JabberClient.JabberClient() # j'initialise mon client jabber
perso
Il ne me reste plus, dans main.py de faire import MonServeur pour
instancier MonServeur.
Est-ce une bonne idée de tout lancer à ce moment la ou vaut il mieux
faire une methode MonServeur.init() par exemple ?
Ensuite, dans HttpServer.py, comment alors acceder à MonServeur.config ?
__main__.MonServeur.config ?
c'est moche !!
Autre chose, il me semble avoir vu qu'on peut aussi définir un module
dans un dossier (un dossier + plusieurs fichiers py). dans ce cas, il
faut utiliser un fichier __init__.py pour l'init ? et les fonctions
"spéciales" (__getattr__...) ou les mettre ?
Bin, disons que si tu faisais la distinction entre classe et objet...
Heu, attend, je l'ai déjà dis, ça, non ???
Oui en effet ;) Je dirai : un objet est issu d'une classe ?
Merci :)
Il ne me reste plus, dans main.py de faire import MonServeur pour
instancier MonServeur.
Attention: l'"instantiation" de MonServeur n'est faite que par le
*premier* import. Ensuite l'"instance" est mise en cache et réutilisée à
chaque nouvel import du même module. Fais le test en mettant un print
dans ton module (directement; pas dans une fonction) et tu verras qu'il
n'est fait qu'une seule fois, même si tu as 250 import du module dans
ton appli.Ensuite, dans HttpServer.py, comment alors acceder à MonServeur.config ?
... et ça ne sert à rien. Fais juste un nouveau "import MonServeur" et
tu récupèreras l'"instance" déjà créée.
Mmmmouais... Disons qu'une classe est un modèle de construction pour un
objet. Ta classe, c'est le patron que tu trouves dans "Modes & Travaux";
l'objet c'est le tricot, que tu peux refaire autant de fois que tu veux
à partir du même patron.
Il ne me reste plus, dans main.py de faire import MonServeur pour
instancier MonServeur.
Attention: l'"instantiation" de MonServeur n'est faite que par le
*premier* import. Ensuite l'"instance" est mise en cache et réutilisée à
chaque nouvel import du même module. Fais le test en mettant un print
dans ton module (directement; pas dans une fonction) et tu verras qu'il
n'est fait qu'une seule fois, même si tu as 250 import du module dans
ton appli.
Ensuite, dans HttpServer.py, comment alors acceder à MonServeur.config ?
... et ça ne sert à rien. Fais juste un nouveau "import MonServeur" et
tu récupèreras l'"instance" déjà créée.
Mmmmouais... Disons qu'une classe est un modèle de construction pour un
objet. Ta classe, c'est le patron que tu trouves dans "Modes & Travaux";
l'objet c'est le tricot, que tu peux refaire autant de fois que tu veux
à partir du même patron.
Il ne me reste plus, dans main.py de faire import MonServeur pour
instancier MonServeur.
Attention: l'"instantiation" de MonServeur n'est faite que par le
*premier* import. Ensuite l'"instance" est mise en cache et réutilisée à
chaque nouvel import du même module. Fais le test en mettant un print
dans ton module (directement; pas dans une fonction) et tu verras qu'il
n'est fait qu'une seule fois, même si tu as 250 import du module dans
ton appli.Ensuite, dans HttpServer.py, comment alors acceder à MonServeur.config ?
... et ça ne sert à rien. Fais juste un nouveau "import MonServeur" et
tu récupèreras l'"instance" déjà créée.
Mmmmouais... Disons qu'une classe est un modèle de construction pour un
objet. Ta classe, c'est le patron que tu trouves dans "Modes & Travaux";
l'objet c'est le tricot, que tu peux refaire autant de fois que tu veux
à partir du même patron.
On Fri, 09 Nov 2007 13:20:27 +0100, JB wrote:Merci
donc si je comprends bien mon module MonServeur.py pourra lancer mes
différents services (autres classes) et gérer mes variables globales
auxquelles ils pourront avoir access
En gros c'est ça, même si je ne suis pas tout à fait sûr qu'assimiler
simplement un module à une classe singleton ne soit pas au final plus
confusant qu'autre chose... J'aurais plutôt tendance à voir le problème
dans l'autre sens: les classes singleton n'ont été inventées que pour
émuler le comportement des bons vieux modules C avec des variables
statiques et des fonctions. Un module Python ressemble beaucoup plus à
un tel module C qu'à une vraie classe. Typiquement, on va parler de
variables et de fonctions du module, et pas d'attributs ou de méthodes
comme pour une classe. Mais la différence est subtile...
Il ne me reste plus, dans main.py de faire import MonServeur pour
instancier MonServeur.
Attention: l'"instantiation" de MonServeur n'est faite que par le
*premier* import. Ensuite l'"instance"
Autre chose, il me semble avoir vu qu'on peut aussi définir un module
dans un dossier (un dossier + plusieurs fichiers py). dans ce cas, il
faut utiliser un fichier __init__.py pour l'init ?
et les fonctions
"spéciales" (__getattr__...) ou les mettre ?
Il n'y a pas de *fonctions* spéciales __getattr__ etc... Il y a des
*méthodes* spéciales __getattr__ etc...
Bin, disons que si tu faisais la distinction entre classe et objet...
Heu, attend, je l'ai déjà dis, ça, non ???
Oui en effet ;) Je dirai : un objet est issu d'une classe ?
Mmmmouais... Disons qu'une classe est un modèle de construction pour un
objet.
On Fri, 09 Nov 2007 13:20:27 +0100, JB <zorro@chez.Com> wrote:
Merci
donc si je comprends bien mon module MonServeur.py pourra lancer mes
différents services (autres classes) et gérer mes variables globales
auxquelles ils pourront avoir access
En gros c'est ça, même si je ne suis pas tout à fait sûr qu'assimiler
simplement un module à une classe singleton ne soit pas au final plus
confusant qu'autre chose... J'aurais plutôt tendance à voir le problème
dans l'autre sens: les classes singleton n'ont été inventées que pour
émuler le comportement des bons vieux modules C avec des variables
statiques et des fonctions. Un module Python ressemble beaucoup plus à
un tel module C qu'à une vraie classe. Typiquement, on va parler de
variables et de fonctions du module, et pas d'attributs ou de méthodes
comme pour une classe. Mais la différence est subtile...
Il ne me reste plus, dans main.py de faire import MonServeur pour
instancier MonServeur.
Attention: l'"instantiation" de MonServeur n'est faite que par le
*premier* import. Ensuite l'"instance"
Autre chose, il me semble avoir vu qu'on peut aussi définir un module
dans un dossier (un dossier + plusieurs fichiers py). dans ce cas, il
faut utiliser un fichier __init__.py pour l'init ?
et les fonctions
"spéciales" (__getattr__...) ou les mettre ?
Il n'y a pas de *fonctions* spéciales __getattr__ etc... Il y a des
*méthodes* spéciales __getattr__ etc...
Bin, disons que si tu faisais la distinction entre classe et objet...
Heu, attend, je l'ai déjà dis, ça, non ???
Oui en effet ;) Je dirai : un objet est issu d'une classe ?
Mmmmouais... Disons qu'une classe est un modèle de construction pour un
objet.
On Fri, 09 Nov 2007 13:20:27 +0100, JB wrote:Merci
donc si je comprends bien mon module MonServeur.py pourra lancer mes
différents services (autres classes) et gérer mes variables globales
auxquelles ils pourront avoir access
En gros c'est ça, même si je ne suis pas tout à fait sûr qu'assimiler
simplement un module à une classe singleton ne soit pas au final plus
confusant qu'autre chose... J'aurais plutôt tendance à voir le problème
dans l'autre sens: les classes singleton n'ont été inventées que pour
émuler le comportement des bons vieux modules C avec des variables
statiques et des fonctions. Un module Python ressemble beaucoup plus à
un tel module C qu'à une vraie classe. Typiquement, on va parler de
variables et de fonctions du module, et pas d'attributs ou de méthodes
comme pour une classe. Mais la différence est subtile...
Il ne me reste plus, dans main.py de faire import MonServeur pour
instancier MonServeur.
Attention: l'"instantiation" de MonServeur n'est faite que par le
*premier* import. Ensuite l'"instance"
Autre chose, il me semble avoir vu qu'on peut aussi définir un module
dans un dossier (un dossier + plusieurs fichiers py). dans ce cas, il
faut utiliser un fichier __init__.py pour l'init ?
et les fonctions
"spéciales" (__getattr__...) ou les mettre ?
Il n'y a pas de *fonctions* spéciales __getattr__ etc... Il y a des
*méthodes* spéciales __getattr__ etc...
Bin, disons que si tu faisais la distinction entre classe et objet...
Heu, attend, je l'ai déjà dis, ça, non ???
Oui en effet ;) Je dirai : un objet est issu d'une classe ?
Mmmmouais... Disons qu'une classe est un modèle de construction pour un
objet.