J'ai pas mal cherché de documentation sur les interfaces de classes pour
python mais je n'ai pas trouvé grand chose.
Je souhaite donner à mon programme la possibilité d'accéder à plusieurs
types de fichiers différents mais pour que le format soit transparent je
dois créer des interfaces ... et je ne trouve pas bcp de documentation.
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
Bruno Desthuilliers
Bonjour,
J'ai pas mal cherché de documentation sur les interfaces de classes pour python mais je n'ai pas trouvé grand chose.
Je suppose que tu penses à quelque chose dans le genre des interfaces de Java ? Si oui, deux petites questions : à quoi sert ce concept en Java ? Et à quoi servirait-il dans un langage à typage dynamique ?
Je souhaite donner à mon programme la possibilité d'accéder à plusieurs types de fichiers différents mais pour que le format soit transparent je dois créer des interfaces ...
Tu "dois" ? Pourquoi donc ?
et je ne trouve pas bcp de documentation.
Et pour cause...
class FileFoo(object): def somemethod(self, ...): # code here def othermethod(self, ...): # code here
class FileBar(object): def somemethod(self, ...): # code here def othermethod(self, ...): # code here
class FileQuux(object): def somemethod(self, ...): # code here def othermethod(self, ...): # code here
files = [FileFoo(), FileBar(), FileQuux()] for f in files: f.somemethod() f.othermethod()
En clair : en Python, les interfaces sont implicites. Le mode de typage de Python est souvent appelé 'Duck Typing' (typage canard), parce que "si ça marche comme un canard et que ça fait coin-coin comme un canard, alors c'est un canard"...
Ceci étant, il existe des bibliothèques proposant un concept d'interface (voir du côté de Zope3 et Peak). Mais les motivations (et les fonctionalités) sont autres que pour Java - essentiellement, il s'agit soit de définir des points d'entrée pour des systèmes de plugin, soit de permettre des "adaptations" (pattern adapter) automatiques.
Merci !
De rien.
Bonjour,
J'ai pas mal cherché de documentation sur les interfaces de classes pour
python mais je n'ai pas trouvé grand chose.
Je suppose que tu penses à quelque chose dans le genre des interfaces de
Java ? Si oui, deux petites questions : à quoi sert ce concept en Java ?
Et à quoi servirait-il dans un langage à typage dynamique ?
Je souhaite donner à mon programme la possibilité d'accéder à plusieurs
types de fichiers différents mais pour que le format soit transparent je
dois créer des interfaces ...
Tu "dois" ? Pourquoi donc ?
et je ne trouve pas bcp de documentation.
Et pour cause...
class FileFoo(object):
def somemethod(self, ...):
# code here
def othermethod(self, ...):
# code here
class FileBar(object):
def somemethod(self, ...):
# code here
def othermethod(self, ...):
# code here
class FileQuux(object):
def somemethod(self, ...):
# code here
def othermethod(self, ...):
# code here
files = [FileFoo(), FileBar(), FileQuux()]
for f in files:
f.somemethod()
f.othermethod()
En clair : en Python, les interfaces sont implicites. Le mode de typage
de Python est souvent appelé 'Duck Typing' (typage canard), parce que
"si ça marche comme un canard et que ça fait coin-coin comme un canard,
alors c'est un canard"...
Ceci étant, il existe des bibliothèques proposant un concept d'interface
(voir du côté de Zope3 et Peak). Mais les motivations (et les
fonctionalités) sont autres que pour Java - essentiellement, il s'agit
soit de définir des points d'entrée pour des systèmes de plugin, soit de
permettre des "adaptations" (pattern adapter) automatiques.
J'ai pas mal cherché de documentation sur les interfaces de classes pour python mais je n'ai pas trouvé grand chose.
Je suppose que tu penses à quelque chose dans le genre des interfaces de Java ? Si oui, deux petites questions : à quoi sert ce concept en Java ? Et à quoi servirait-il dans un langage à typage dynamique ?
Je souhaite donner à mon programme la possibilité d'accéder à plusieurs types de fichiers différents mais pour que le format soit transparent je dois créer des interfaces ...
Tu "dois" ? Pourquoi donc ?
et je ne trouve pas bcp de documentation.
Et pour cause...
class FileFoo(object): def somemethod(self, ...): # code here def othermethod(self, ...): # code here
class FileBar(object): def somemethod(self, ...): # code here def othermethod(self, ...): # code here
class FileQuux(object): def somemethod(self, ...): # code here def othermethod(self, ...): # code here
files = [FileFoo(), FileBar(), FileQuux()] for f in files: f.somemethod() f.othermethod()
En clair : en Python, les interfaces sont implicites. Le mode de typage de Python est souvent appelé 'Duck Typing' (typage canard), parce que "si ça marche comme un canard et que ça fait coin-coin comme un canard, alors c'est un canard"...
Ceci étant, il existe des bibliothèques proposant un concept d'interface (voir du côté de Zope3 et Peak). Mais les motivations (et les fonctionalités) sont autres que pour Java - essentiellement, il s'agit soit de définir des points d'entrée pour des systèmes de plugin, soit de permettre des "adaptations" (pattern adapter) automatiques.
Merci !
De rien.
Méta-MCI
Bonjour !
en Python, les interfaces sont implicites (+ duck typing)
Et, ça semble tellement naturel à utiliser qu'on ne réalise même pas que beaucoup de langages (connus) ne font pas pareil.
Je suis régulièrement étonné, en lisant des annonces de nouvelles versions de langages (java ou C#, pour ne pas les nommer), qui présentent comme très intéressantes, voir révolutionnaires, des aspects qui sont innés (ou implicites) dans Python.
Je plains les développeurs qui sont obligés de travailler avec ces langages... Mais, ça a au moins un avantage : les commerciaux qui vantent des logiciels d'après le "nombre de lignes de code" voient leur discours justifié. Ils ne leur reste plus qu'à opter pour Intercal... ;o)
@+
MCI
Bonjour !
en Python, les interfaces sont implicites (+ duck typing)
Et, ça semble tellement naturel à utiliser qu'on ne réalise même pas que
beaucoup de langages (connus) ne font pas pareil.
Je suis régulièrement étonné, en lisant des annonces de nouvelles versions
de langages (java ou C#, pour ne pas les nommer), qui présentent comme très
intéressantes, voir révolutionnaires, des aspects qui sont innés (ou
implicites) dans Python.
Je plains les développeurs qui sont obligés de travailler avec ces
langages... Mais, ça a au moins un avantage : les commerciaux qui vantent
des logiciels d'après le "nombre de lignes de code" voient leur discours
justifié.
Ils ne leur reste plus qu'à opter pour Intercal... ;o)
en Python, les interfaces sont implicites (+ duck typing)
Et, ça semble tellement naturel à utiliser qu'on ne réalise même pas que beaucoup de langages (connus) ne font pas pareil.
Je suis régulièrement étonné, en lisant des annonces de nouvelles versions de langages (java ou C#, pour ne pas les nommer), qui présentent comme très intéressantes, voir révolutionnaires, des aspects qui sont innés (ou implicites) dans Python.
Je plains les développeurs qui sont obligés de travailler avec ces langages... Mais, ça a au moins un avantage : les commerciaux qui vantent des logiciels d'après le "nombre de lignes de code" voient leur discours justifié. Ils ne leur reste plus qu'à opter pour Intercal... ;o)
@+
MCI
Méta-MCI
Re !
Je suis tombé sur un mot, pour qualifier les développeurs qui utilisent des langages lourds et statiques (pléonasme ?) :
technomasochist
Désolé, c'est en anglais. Mais, je pense que le terme est bien approprié...
@-salutations
Michel Claveau
Re !
Je suis tombé sur un mot, pour qualifier les développeurs qui utilisent des
langages lourds et statiques (pléonasme ?) :
technomasochist
Désolé, c'est en anglais. Mais, je pense que le terme est bien approprié...
Je suis tombé sur un mot, pour qualifier les développeurs qui utilisent des langages lourds et statiques (pléonasme ?) :
technomasochist
Désolé, c'est en anglais. Mais, je pense que le terme est bien approprié...
@-salutations
Michel Claveau
Bruno Desthuilliers
Bonjour !
en Python, les interfaces sont implicites (+ duck typing)
Et, ça semble tellement naturel à utiliser qu'on ne réalise même pas que beaucoup de langages (connus) ne font pas pareil.
Je suis régulièrement étonné, en lisant des annonces de nouvelles versions de langages (java ou C#, pour ne pas les nommer), qui présentent comme très intéressantes, voir révolutionnaires, des aspects qui sont innés (ou implicites) dans Python.
Ca fait encore plus marrer les lispeurs.
Bonjour !
en Python, les interfaces sont implicites (+ duck typing)
Et, ça semble tellement naturel à utiliser qu'on ne réalise même pas que
beaucoup de langages (connus) ne font pas pareil.
Je suis régulièrement étonné, en lisant des annonces de nouvelles
versions de langages (java ou C#, pour ne pas les nommer), qui
présentent comme très intéressantes, voir révolutionnaires, des aspects
qui sont innés (ou implicites) dans Python.
en Python, les interfaces sont implicites (+ duck typing)
Et, ça semble tellement naturel à utiliser qu'on ne réalise même pas que beaucoup de langages (connus) ne font pas pareil.
Je suis régulièrement étonné, en lisant des annonces de nouvelles versions de langages (java ou C#, pour ne pas les nommer), qui présentent comme très intéressantes, voir révolutionnaires, des aspects qui sont innés (ou implicites) dans Python.