est-ce que qq'1 pourrait me dire comment utiliser une classe du style* :
#--
class myPointClass:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __init__(self, x=0, y=0, z=0):
self.__init__(self, x, y)
self.z = z
#--
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Yermat
salut les gens,
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* : #-- class myPointClass: def __init__(self, x=0, y=0): self.x = x self.y = y def __init__(self, x=0, y=0, z=0): self.__init__(self, x, y) self.z = z #--
merci d'avance les gens scott
*this is not homework
class Point2D(object): def __init__(self, x=0, y=0): self.x = x self.y = y
class Point3D(Point2D): def __init__(self, x=0, y=0, z=0): super(Point3D, self).__init__(x, y) self.z = z
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* :
#--
class myPointClass:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __init__(self, x=0, y=0, z=0):
self.__init__(self, x, y)
self.z = z
#--
merci d'avance les gens
scott
*this is not homework
class Point2D(object):
def __init__(self, x=0, y=0):
self.x = x
self.y = y
class Point3D(Point2D):
def __init__(self, x=0, y=0, z=0):
super(Point3D, self).__init__(x, y)
self.z = z
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* : #-- class myPointClass: def __init__(self, x=0, y=0): self.x = x self.y = y def __init__(self, x=0, y=0, z=0): self.__init__(self, x, y) self.z = z #--
merci d'avance les gens scott
*this is not homework
class Point2D(object): def __init__(self, x=0, y=0): self.x = x self.y = y
class Point3D(Point2D): def __init__(self, x=0, y=0, z=0): super(Point3D, self).__init__(x, y) self.z = z
J'ai eu un problème avec slrn : slrn stopped. J'ai du bricoloer pour
rattraper la réponse que j'étais en train de taper : -------------
salut les gens,
bonjour
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* : #-- class myPointClass: def __init__(self, x=0, y=0): self.x = x self.y = y def __init__(self, x=0, y=0, z=0): self.__init__(self, x, y) self.z = z #--
merci d'avance les gens scott
*this is not homework
Bien sûr que non, puisque c'est un exercice à faire à la maison :-)
Le problème est que __init__ n'est pas le constructeur d'une part (c'est __new__) et que Python considère qu'à un nom ne peut correspondre qu'une méthodn La règle est simple : un nom ==> un attribut et une méthode est un attribut un peu particulier (callable, self en premier argument, ..)
Que pensez-vous de : class Point2D(object): def __init__(self, x=0, y=0): self.x = x self.y = y
class Point3D(Point2D): def __init__(self, x=0, y=0, z=0): super(Point3D, self).__init__(x, y) self.z = z
Je sais que l'utilisation de super est un peu foireuse dans ce cas (on devrait toujours passer tous les arguments *args, **kwargs) mais vous obtenez deux classes bien liées et à l'utilisation il est tout de même bien pratique de savoir si on a affaire à un point dans l'espace ou à sa projection sur z=0. ------------- conclusion: il me semble que le code de Yermat est identique aux tabulations près. Vous ne trouvez pas cela bizarre ?
class Point2D(object):
def __init__(self, x=0, y=0):
self.x = x
self.y = y
class Point3D(Point2D):
def __init__(self, x=0, y=0, z=0):
super(Point3D, self).__init__(x, y)
self.z = z
J'ai eu un problème avec slrn : slrn stopped. J'ai du bricoloer pour
rattraper la réponse que j'étais en train de taper :
-------------
salut les gens,
bonjour
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* :
#--
class myPointClass:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __init__(self, x=0, y=0, z=0):
self.__init__(self, x, y)
self.z = z
#--
merci d'avance les gens
scott
*this is not homework
Bien sûr que non, puisque c'est un exercice à faire à la maison :-)
Le problème est que __init__ n'est pas le constructeur d'une part (c'est
__new__) et que Python considère qu'à un nom ne peut correspondre qu'une méthodn
La règle est simple : un nom ==> un attribut et une méthode est un
attribut un peu particulier (callable, self en premier argument, ..)
Que pensez-vous de :
class Point2D(object):
def __init__(self, x=0, y=0):
self.x = x
self.y = y
class Point3D(Point2D):
def __init__(self, x=0, y=0, z=0):
super(Point3D, self).__init__(x, y)
self.z = z
Je sais que l'utilisation de super est un peu foireuse dans ce cas (on
devrait toujours passer tous les arguments *args, **kwargs) mais vous
obtenez deux classes bien liées et à l'utilisation il est tout de même
bien pratique de savoir si on a affaire à un point dans l'espace ou à sa
projection sur z=0.
-------------
conclusion: il me semble que le code de Yermat est identique aux
tabulations près. Vous ne trouvez pas cela bizarre ?
J'ai eu un problème avec slrn : slrn stopped. J'ai du bricoloer pour
rattraper la réponse que j'étais en train de taper : -------------
salut les gens,
bonjour
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* : #-- class myPointClass: def __init__(self, x=0, y=0): self.x = x self.y = y def __init__(self, x=0, y=0, z=0): self.__init__(self, x, y) self.z = z #--
merci d'avance les gens scott
*this is not homework
Bien sûr que non, puisque c'est un exercice à faire à la maison :-)
Le problème est que __init__ n'est pas le constructeur d'une part (c'est __new__) et que Python considère qu'à un nom ne peut correspondre qu'une méthodn La règle est simple : un nom ==> un attribut et une méthode est un attribut un peu particulier (callable, self en premier argument, ..)
Que pensez-vous de : class Point2D(object): def __init__(self, x=0, y=0): self.x = x self.y = y
class Point3D(Point2D): def __init__(self, x=0, y=0, z=0): super(Point3D, self).__init__(x, y) self.z = z
Je sais que l'utilisation de super est un peu foireuse dans ce cas (on devrait toujours passer tous les arguments *args, **kwargs) mais vous obtenez deux classes bien liées et à l'utilisation il est tout de même bien pratique de savoir si on a affaire à un point dans l'espace ou à sa projection sur z=0. ------------- conclusion: il me semble que le code de Yermat est identique aux tabulations près. Vous ne trouvez pas cela bizarre ?
Christophe Cavalaria
scott wrote:
salut les gens,
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* : #-- class myPointClass: def __init__(self, x=0, y=0): self.x = x self.y = y def __init__(self, x=0, y=0, z=0): self.__init__(self, x, y) self.z = z #--
merci d'avance les gens scott
*this is not homework
Je sais que c'est probablement un simple exemple mais dans ce cas la réponse est tellement simple :)
class myPointClass: def __init__(self, x=0, y=0, z=0): self.x = x self.y = y self.z = z
Hop !
scott wrote:
salut les gens,
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* :
#--
class myPointClass:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __init__(self, x=0, y=0, z=0):
self.__init__(self, x, y)
self.z = z
#--
merci d'avance les gens
scott
*this is not homework
Je sais que c'est probablement un simple exemple mais dans ce cas la réponse
est tellement simple :)
class myPointClass:
def __init__(self, x=0, y=0, z=0):
self.x = x
self.y = y
self.z = z
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* : #-- class myPointClass: def __init__(self, x=0, y=0): self.x = x self.y = y def __init__(self, x=0, y=0, z=0): self.__init__(self, x, y) self.z = z #--
merci d'avance les gens scott
*this is not homework
Je sais que c'est probablement un simple exemple mais dans ce cas la réponse est tellement simple :)
class myPointClass: def __init__(self, x=0, y=0, z=0): self.x = x self.y = y self.z = z
Hop !
Yermat
[...] Le problème est que __init__ n'est pas le constructeur d'une part (c'est __new__) et que Python considère qu'à un nom ne peut correspondre qu'une méthodn La règle est simple : un nom ==> un attribut et une méthode est un attribut un peu particulier (callable, self en premier argument, ..)
Pas d'accord... __new__ est un créateur, __init__ est un initialisateur. Le constructeur, au sens de nombreux langages de programmation, est donc plus proche de __init__...
conclusion: il me semble que le code de Yermat est identique aux tabulations près. Vous ne trouvez pas cela bizarre ?
Je n'ai rien compris aux insinuations donc si quelqu'un pouvait me faire la traduction ! ?
PS : J'ai passé l'âge des exercices à la maison... PPS : Que vient faire slrn là ?
[...]
Le problème est que __init__ n'est pas le constructeur d'une part (c'est
__new__) et que Python considère qu'à un nom ne peut correspondre qu'une méthodn
La règle est simple : un nom ==> un attribut et une méthode est un
attribut un peu particulier (callable, self en premier argument, ..)
Pas d'accord... __new__ est un créateur, __init__ est un initialisateur.
Le constructeur, au sens de nombreux langages de programmation, est donc
plus proche de __init__...
conclusion: il me semble que le code de Yermat est identique aux
tabulations près. Vous ne trouvez pas cela bizarre ?
Je n'ai rien compris aux insinuations donc si quelqu'un pouvait me faire
la traduction ! ?
PS : J'ai passé l'âge des exercices à la maison...
PPS : Que vient faire slrn là ?
[...] Le problème est que __init__ n'est pas le constructeur d'une part (c'est __new__) et que Python considère qu'à un nom ne peut correspondre qu'une méthodn La règle est simple : un nom ==> un attribut et une méthode est un attribut un peu particulier (callable, self en premier argument, ..)
Pas d'accord... __new__ est un créateur, __init__ est un initialisateur. Le constructeur, au sens de nombreux langages de programmation, est donc plus proche de __init__...
conclusion: il me semble que le code de Yermat est identique aux tabulations près. Vous ne trouvez pas cela bizarre ?
Je n'ai rien compris aux insinuations donc si quelqu'un pouvait me faire la traduction ! ?
PS : J'ai passé l'âge des exercices à la maison... PPS : Que vient faire slrn là ?
F. Petitjean
[...] Le problème est que __init__ n'est pas le constructeur d'une part (c'est __new__) et que Python considère qu'à un nom ne peut correspondre qu'une méthodn La règle est simple : un nom ==> un attribut et une méthode est un attribut un peu particulier (callable, self en premier argument, ..)
Pas d'accord... __new__ est un créateur, __init__ est un initialisateur. Le constructeur, au sens de nombreux langages de programmation, est donc plus proche de __init__...
Effectivement. Mais il n'y a pas plusieurs méthodes avec différentes signatures pour un seul nom.
conclusion: il me semble que le code de Yermat est identique aux tabulations près. Vous ne trouvez pas cela bizarre ?
Je n'ai rien compris aux insinuations donc si quelqu'un pouvait me faire la traduction ! ?
Il ne faut pas prendre la mouche. J'étais tranquillement en train de taper mon message (depuis le bureau, une session ssh vers une petite machine à la maison car pas d'accès aux news depuis le réseau de l'entreprise) lorsque j'ai eu slrn Stopped et là pour rattraper le coup, j'ai eu quelques difficultés. Lorsque j'ai pu me reconnecter j'ai constaté que vous aviez tapé un code identique.
PS : J'ai passé l'âge des exercices à la maison...
Je répondais à Scott qui avait parlé de "homework"
PPS : Que vient faire slrn là ? voir plus haut, j'utilise slrn pour accéder à ce forum.
[...]
Le problème est que __init__ n'est pas le constructeur d'une part (c'est
__new__) et que Python considère qu'à un nom ne peut correspondre qu'une méthodn
La règle est simple : un nom ==> un attribut et une méthode est un
attribut un peu particulier (callable, self en premier argument, ..)
Pas d'accord... __new__ est un créateur, __init__ est un initialisateur.
Le constructeur, au sens de nombreux langages de programmation, est donc
plus proche de __init__...
Effectivement. Mais il n'y a pas plusieurs méthodes avec différentes
signatures pour un seul nom.
conclusion: il me semble que le code de Yermat est identique aux
tabulations près. Vous ne trouvez pas cela bizarre ?
Je n'ai rien compris aux insinuations donc si quelqu'un pouvait me faire
la traduction ! ?
Il ne faut pas prendre la mouche. J'étais tranquillement en train de
taper mon message (depuis le bureau, une session ssh vers une petite
machine à la maison car pas d'accès aux news depuis le réseau de
l'entreprise) lorsque j'ai eu
slrn Stopped
et là pour rattraper le coup, j'ai eu quelques difficultés. Lorsque j'ai
pu me reconnecter j'ai constaté que vous aviez tapé un code identique.
PS : J'ai passé l'âge des exercices à la maison...
Je répondais à Scott qui avait parlé de "homework"
PPS : Que vient faire slrn là ?
voir plus haut, j'utilise slrn pour accéder à ce forum.
[...] Le problème est que __init__ n'est pas le constructeur d'une part (c'est __new__) et que Python considère qu'à un nom ne peut correspondre qu'une méthodn La règle est simple : un nom ==> un attribut et une méthode est un attribut un peu particulier (callable, self en premier argument, ..)
Pas d'accord... __new__ est un créateur, __init__ est un initialisateur. Le constructeur, au sens de nombreux langages de programmation, est donc plus proche de __init__...
Effectivement. Mais il n'y a pas plusieurs méthodes avec différentes signatures pour un seul nom.
conclusion: il me semble que le code de Yermat est identique aux tabulations près. Vous ne trouvez pas cela bizarre ?
Je n'ai rien compris aux insinuations donc si quelqu'un pouvait me faire la traduction ! ?
Il ne faut pas prendre la mouche. J'étais tranquillement en train de taper mon message (depuis le bureau, une session ssh vers une petite machine à la maison car pas d'accès aux news depuis le réseau de l'entreprise) lorsque j'ai eu slrn Stopped et là pour rattraper le coup, j'ai eu quelques difficultés. Lorsque j'ai pu me reconnecter j'ai constaté que vous aviez tapé un code identique.
PS : J'ai passé l'âge des exercices à la maison...
Je répondais à Scott qui avait parlé de "homework"
PPS : Que vient faire slrn là ? voir plus haut, j'utilise slrn pour accéder à ce forum.
Yermat
F. Petitjean wrote:
[...]
Effectivement. Mais il n'y a pas plusieurs méthodes avec différentes signatures pour un seul nom.
Vi vi. Mais bon la question n'étant pas clair...
Sinon, dans certains cas, il peut aussi être intéressant de voir l'aiguillage dynamique ou les multiméthodes.
conclusion: il me semble que le code de Yermat est identique aux tabulations près. Vous ne trouvez pas cela bizarre ?
Je n'ai rien compris aux insinuations donc si quelqu'un pouvait me faire la traduction ! ?
Il ne faut pas prendre la mouche. [...]
Trop tard :-p
-- Yermat
kaerbuhez
salut les gens,
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* : #-- class myPointClass: def __init__(self, x=0, y=0): self.x = x self.y = y def __init__(self, x=0, y=0, z=0): self.__init__(self, x, y) self.z = z #--
merci d'avance les gens scott
*this is not homework
Difficile de te répondre sans savoir ce que tu veux (et pas comment tu veux le faire, on sait déjà que c'est comme en java - ou en C+#/@! ? ;-) - et ça c'est une mauvaise idée ;-) ) cad : quels sont les états acceptables de l'instance myPointClass: x; y et z peuvent-ils être non défini, égal à None, 0, entier positif, ... ? (et avec quelle sémantique ?)
De toutes façons, en python: - tu n'as droit qu'à une seule méthode __init__ par classe avec (mais ça tu le sais déjà) des valeurs par défaut si nécessaire. Cette faculté et le fait que les paramétres sont non typés permettent dans la plupart des cas de se satisfaire d'un seul "constructeur" (je mets beaucoup de guillemets car ce terme ne recouvre que trés superficiellement la même notion dans d'autres langages mais bon, c'est pas le sujet).
- tu peux créer des méthodes de classes (voir classmethod dans la doc) qui jouent le même rôle (rarement mais parfois vraiment utile).
class Point2D(object): def __init__(self, x=0, y=0): self.x = x self.y = y
class Point3D(Point2D): def __init__(self, x=0, y=0, z=0): super(Point3D, self).__init__(x, y) self.z = z
C'est une option effectivement ... mais faire hériter une classe 3D d'une classe 2D n'a pas que des avantages. Et je me situe uniquement sur le plan pratique bien entendu ... !
Et pour finir, ... : The Zen of Python, by Tim Peters: "... Simple is better than complex. ... If the implementation is hard to explain, it's a bad idea. ..."
salut les gens,
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* :
#--
class myPointClass:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __init__(self, x=0, y=0, z=0):
self.__init__(self, x, y)
self.z = z
#--
merci d'avance les gens
scott
*this is not homework
Difficile de te répondre sans savoir ce que tu veux (et pas comment tu
veux le faire, on sait déjà que c'est comme en java - ou en C+#/@! ? ;-)
- et ça c'est une mauvaise idée ;-) ) cad : quels sont les états
acceptables de l'instance myPointClass: x; y et z peuvent-ils être non
défini, égal à None, 0, entier positif, ... ? (et avec quelle sémantique ?)
De toutes façons, en python:
- tu n'as droit qu'à une seule méthode __init__ par classe avec (mais ça
tu le sais déjà) des valeurs par défaut si nécessaire. Cette faculté et
le fait que les paramétres sont non typés permettent dans la plupart
des cas de se satisfaire d'un seul "constructeur" (je mets beaucoup de
guillemets car ce terme ne recouvre que trés superficiellement la même
notion dans d'autres langages mais bon, c'est pas le sujet).
- tu peux créer des méthodes de classes (voir classmethod dans la doc)
qui jouent le même rôle (rarement mais parfois vraiment utile).
class Point2D(object):
def __init__(self, x=0, y=0):
self.x = x
self.y = y
class Point3D(Point2D):
def __init__(self, x=0, y=0, z=0):
super(Point3D, self).__init__(x, y)
self.z = z
C'est une option effectivement ... mais faire hériter une classe 3D
d'une classe 2D n'a pas que des avantages. Et je me situe uniquement sur
le plan pratique bien entendu ... !
Et pour finir, ... : The Zen of Python, by Tim Peters:
"...
Simple is better than complex.
...
If the implementation is hard to explain, it's a bad idea.
..."
est-ce que qq'1 pourrait me dire comment utiliser une classe du style* : #-- class myPointClass: def __init__(self, x=0, y=0): self.x = x self.y = y def __init__(self, x=0, y=0, z=0): self.__init__(self, x, y) self.z = z #--
merci d'avance les gens scott
*this is not homework
Difficile de te répondre sans savoir ce que tu veux (et pas comment tu veux le faire, on sait déjà que c'est comme en java - ou en C+#/@! ? ;-) - et ça c'est une mauvaise idée ;-) ) cad : quels sont les états acceptables de l'instance myPointClass: x; y et z peuvent-ils être non défini, égal à None, 0, entier positif, ... ? (et avec quelle sémantique ?)
De toutes façons, en python: - tu n'as droit qu'à une seule méthode __init__ par classe avec (mais ça tu le sais déjà) des valeurs par défaut si nécessaire. Cette faculté et le fait que les paramétres sont non typés permettent dans la plupart des cas de se satisfaire d'un seul "constructeur" (je mets beaucoup de guillemets car ce terme ne recouvre que trés superficiellement la même notion dans d'autres langages mais bon, c'est pas le sujet).
- tu peux créer des méthodes de classes (voir classmethod dans la doc) qui jouent le même rôle (rarement mais parfois vraiment utile).
class Point2D(object): def __init__(self, x=0, y=0): self.x = x self.y = y
class Point3D(Point2D): def __init__(self, x=0, y=0, z=0): super(Point3D, self).__init__(x, y) self.z = z
C'est une option effectivement ... mais faire hériter une classe 3D d'une classe 2D n'a pas que des avantages. Et je me situe uniquement sur le plan pratique bien entendu ... !
Et pour finir, ... : The Zen of Python, by Tim Peters: "... Simple is better than complex. ... If the implementation is hard to explain, it's a bad idea. ..."
Eric Deveaud
Christophe Cavalaria wrote:
Je sais que c'est probablement un simple exemple mais dans ce cas la réponse est tellement simple :)
class myPointClass: def __init__(self, x=0, y=0, z=0): self.x = x self.y = y self.z = z
tout simplement en effet, juste un petit iota.
comment faire la diffirence dans ce cas là d'un point 2D (z non significatif) d'un point 3D pour lequel z = 0 ???
j'aurais plutôt choisi None comme valeur par défaut
Eric
--
- Bientot==> Une rubrique membre avec photos - Bientot==> "Un chat on line" pour discuter Si j'amène la photo de mon membre, je pourai caresser le chat ?
-+- FF in Guide du Neuneu Usenet - Cha chanonchait bien pourtant -+-
Christophe Cavalaria wrote:
Je sais que c'est probablement un simple exemple mais dans ce cas la réponse
est tellement simple :)
class myPointClass:
def __init__(self, x=0, y=0, z=0):
self.x = x
self.y = y
self.z = z
tout simplement en effet, juste un petit iota.
comment faire la diffirence dans ce cas là d'un point 2D (z non significatif)
d'un point 3D pour lequel z = 0 ???
j'aurais plutôt choisi None comme valeur par défaut
Eric
--
- Bientot==> Une rubrique membre avec photos
- Bientot==> "Un chat on line" pour discuter
Si j'amène la photo de mon membre, je pourai caresser le chat ?
-+- FF in Guide du Neuneu Usenet - Cha chanonchait bien pourtant -+-
Je sais que c'est probablement un simple exemple mais dans ce cas la réponse est tellement simple :)
class myPointClass: def __init__(self, x=0, y=0, z=0): self.x = x self.y = y self.z = z
tout simplement en effet, juste un petit iota.
comment faire la diffirence dans ce cas là d'un point 2D (z non significatif) d'un point 3D pour lequel z = 0 ???
j'aurais plutôt choisi None comme valeur par défaut
Eric
--
- Bientot==> Une rubrique membre avec photos - Bientot==> "Un chat on line" pour discuter Si j'amène la photo de mon membre, je pourai caresser le chat ?
-+- FF in Guide du Neuneu Usenet - Cha chanonchait bien pourtant -+-