Interfaces

Le
BH
Bonjour,

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.

Merci !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bruno Desthuilliers
Le #592411
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.

Méta-MCI
Le #591494
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



Méta-MCI
Le #591493
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
Bruno Desthuilliers
Le #597218
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.




Publicité
Poster une réponse
Anonyme