Python 2.4 est le résultat de quasiment 18 mois de développements sur la base de la version 2.3 et représente une nouvelle étape dans l'évolution du langage. Les nouvelles fonctionnalités ont été gardées à leur strict minimum, des bogues ont été corrigés et des améliorations ont été apportées.
Les changements notables dans Python 2.4 incluent une amélioration de l'importation des modules, des décorateurs de fonctions/méthodes et des générateurs d'expressions.
Aller plus loin
- Nouveautés de la version 2.4 (2 clics)
- Téléchargement (0 clic)
- Nouveautés (long) (1 clic)
# enfin....
Posté par Jean michel WILLI . Évalué à -9.
# Décorateurs
Posté par _ . Évalué à 2.
En tout cas, cela ajoute un certain contrôle des types dont l'abscence rebutait quelques uns
[^] # Re: Décorateurs
Posté par Amand Tihon (site web personnel) . Évalué à 8.
[^] # Re: Décorateurs
Posté par Romain Guy . Évalué à 4.
[^] # Re: Décorateurs
Posté par Stéphane Traumat (site web personnel) . Évalué à 4.
On pouvait déja faire ça avec XDoclet. Cela permettait d'ajouter du code qui générait le source ou la config manquante.
C'est très pratique !
http://about.me/straumat
[^] # Re: Décorateurs
Posté par Nicolas Tramo . Évalué à 1.
On peut l'utiliser dans tous les langages OO, mais j'ignore si d'autres langages l'utilisent directement.
Mais il me semble que java ainsi que .NET font une utilisation très poussée (parfois un peu trop) des design patterns de manière générale.
[^] # Re: Décorateurs
Posté par Stéphane Traumat (site web personnel) . Évalué à 2.
http://about.me/straumat
[^] # Re: Décorateurs
Posté par Sylvain Sauvage . Évalué à 1.
Mais effectivement, point trop n'en faut.
[^] # Re: Décorateurs
Posté par TImaniac (site web personnel) . Évalué à 3.
Le but des dp est avant tout d'identifier et mettre un nom à un problème/solution : c'est un excellent moyen pour se faire comprendre d'autres développeurs sans avoir à réexpliquer comme fabriquer une roue.
[^] # Re: Décorateurs
Posté par Sylvain Sauvage . Évalué à 3.
Patron, c'est pas bien. Motif, c'est mieux.
Je cite un de mes auteurs favoris (moi-même ;o) :
On n'utilise pas les motifs juste pour les utiliser mais parce qu'ils servent, ils sont motivés.
[^] # Re: Décorateurs
Posté par Vivi (site web personnel) . Évalué à 3.
c'est "expression rationnelle" en français
[^] # Re: Décorateurs
Posté par Sylvain Sauvage . Évalué à 2.
[^] # Re: Décorateurs
Posté par Gabriel . Évalué à 2.
Et pourquoi pas : Modèle de conception.
[^] # Re: Décorateurs
Posté par Sylvain Sauvage . Évalué à 2.
[^] # Re: Décorateurs
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: Décorateurs
Posté par Sylvain Sauvage . Évalué à 2.
recherche sur les pages francophones des chaînes (mots exacts, pluriel+singulier) :
"patron(s) de conception" : 968+464
"design pattern(s)" : 31100+7700
Ok, ce n'est pas une recherche linguistiquement bien faite mais ça donne un aperçu : personne ne traduit (1 sur 27). Alors je m'accroche à faire changer ça pendant qu'il est encore temps.
Allons-y Sancho. Sus aux géants !
[^] # Re: Décorateurs
Posté par Éric (site web personnel) . Évalué à 0.
Tu veux dire les expression rationnelles ?
(moi aussi je sais troller sur le français ;)
[^] # Re: Décorateurs
Posté par Nicolas Tramo . Évalué à 1.
Au passage, un motif c'est un petit dessin.
Modèle de conception si on veut bien faire comprendre que l'on vient de France, mais sinon, Design pattern me semble le plus approprié. (Cette dénomination ayant le même avantage que leur objectif : quand on dit design pattern, tout le monde sait de quoi on parle et on a pas besoin de réinventer la roue, alors que patron, motif, modèle de conception,... Faut chaque fois réexpliquer que l'on parle des design patterns)
# le python c'est bon
Posté par Philippe F (site web personnel) . Évalué à 6.
Sa faiblesse vient a mon avis de son caractere hautement dynamique, qui l'autorise malheureusement a laisser des exceptions dans des coins tres sournois, qui ne seront peut-tres jamais mise en evidence durant les tests mais finiront par se lever en prod dans des condeitions bizarres.
Des outils comme pychecker ou peak aident a gerer ce genre de probleme mais je ne suis pas encore satisfait des limitations restantes.
Je reve d'un module qui aurait la force du compilateur de ocaml pour extraire l'ensemble des contraintes appliquees a chaque variable et qui en retirerait des erreurs, un peu comme ce qu'on a a la compile en C++.
[^] # Re: le python c'est bon
Posté par Romain Guy . Évalué à 4.
[^] # Re: le python c'est bon
Posté par bobert . Évalué à 1.
ces erreurs aurait-elles pu être prévenues par des tests unitaires ? Peux-tu nous donner plus de précisions ?
[^] # Re: le python c'est bon
Posté par Amand Tihon (site web personnel) . Évalué à 6.
Pas toujours.
En fait, à peu près tout est dynamique en python (les exceptions qui me viennent à l'esprit sont les types built-in).
Ca veut dire que tu peux, durant l'exécution, ajouter ou retirer des méthodes à une instance, ou à une classe, tu peux modifier l'arbre d'héritage d'une classe, etc.
Tout ceci signifie que l'interface de tes objets peut changer durant l'exécution, ce qui est parfois très pratique pour faire un système de plugins.
Ajoute à ceci la possibilité de jouer avec les métaclasses (le type de ta classe, pas le type de ses instances), et un accès aux constructeurs eux-mêmes[1], et tu peux te retrouver devant de vrais casse-têtes.
Je ne dis pas que c'est une bonne ou une mauvaise manière de programmer, juste qu'il y a beaucoup de champ libre et de possibilités de tester, dans un domaine qui est moins habituel quand on vient du java ou du C++.
[1] Les méthodes appelées « constructeurs » en C++ ou java sont chargées d'initialiser l'instance (comme __init__ en python). Python remonte encore un cran plus haut et donne accès à la méthode qui retourne l'objet créé. Cela veut dire qu'on peut très bien avoir une classe C dont le constructeur (__new__) renvoie en fait une instance de D, même si C et D n'ont strictement rien en commun.
[^] # Re: le python c'est bon
Posté par TImaniac (site web personnel) . Évalué à 2.
Quel est l'intérêt de s'amuser à modifier une classe dynamiquement ? (cad d'y ajouter des attributs, des méthodes, etc.)
Un exemple d'utilisation concrête ?
[^] # Re: le python c'est bon
Posté par Fabimaru (site web personnel) . Évalué à 4.
[^] # Re: le python c'est bon
Posté par Philippe F (site web personnel) . Évalué à 8.
if KDE_SUPPORTED:
XMainWindow = KMainWindow
else:
XMainWidow = QMainWindow
class MyMainWindow( XMainWindow ):
....
En fait, ces possibilites tres dynamiques ne sont pas tant un besoin qu'une possibilite naturelle offerte par le langage.
Les methodes d'une classe sont stockees par exemple dans un dictionnaire attache a la classe, dictionnaire que tu peux manipuler a ta guise. Quel interet de les stocker dans un dictionnaire ? Il fallait bien les stocker quelque part. Quel interet de rendre le dictioninaire accessible ? Ben ca peut s'averer pratique dans certains cas mais Guido n'a pas vu de bonne raison de ne pas le faire.
Par exemple, tu peux faire beaucoup d'introspection en python en passant justement par ce dictionnaire. Alors que en C++, c'est particulierement lourd a faire. Meme en Java ou en .NET, l'api d'introspection est beaucoup plus limitee.
Les caracteristiques hautement dynamiques de python le rendent vraiment adapte pour faire des trucs un peu tordus ou des trucs complexes. Par exemple, la programmation oriente Aspect est hyper facile a mettre en place en python.
Mais faut pas croire que parce que il y a des super fonctionnalites, on doit les utiliser. Perso, je n'utilise que les fonctionnalites de base, je me sert de python comme d'un C++ leger et rapide, avec beaucoup de types de bases tres elabores et une large bibliotheque de fonctions.
[^] # Re: le python c'est bon
Posté par TImaniac (site web personnel) . Évalué à 2.
Mais le fait de pouvoir modifier une classe dynamiquement je ne vois toujours pas :) Quel intérêt y a t-il à tout à coup ajouter des méthodes à un objet, lui ajouter des propriétés ?
Je comprends bien que le langage facilite ces manipulations mais quel est l'intérêt de pouvori le faire dynamiquement ? (vu tous les problèmes que celà semble poser)
[^] # Re: le python c'est bon
Posté par Antoine . Évalué à 3.
Tu peux faire un proxy, par exemple pour appeler un objet distant en masquant l'API d'appel (XMLRPC, pipe, passage d'événement, etc.). Au premier appel d'une méthode, tu résouds l'appel à la main en générant l'appel vers un wrapper (qui est lui-même une fonction définie à la volée, en général une fermeture), mais au lieu de le regénérer à chaque fois, tu mets en cache le wrapper en question et l'ajoutes aux méthodes du proxy.
[^] # Re: le python c'est bon
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: le python c'est bon
Posté par Antoine . Évalué à 6.
En Python tu peux détecter les appels de méthode inexistantes et créer la méthode wrappante correspondante à la volée. Ainsi ton proxy fait dix lignes une fois pour toutes au lieu de grandir à chaque nouvelle méthode de l'objet proxyisé. Le bénéfice en souplesse est inestimable.
[^] # Re: le python c'est bon
Posté par spart . Évalué à 3.
Il y a un runtime commun en C++ qui wrappe toutes les méthodes, une interface de requete pour les atteindre, et de tout petits modules Perl et Ruby pour les conversions de types.
Avec 13000 méthodes disponibles, 30000 si on wrappe aussi KDE, c'est beaucoup plus simple.
[^] # Re: le python c'est bon
Posté par Erwan . Évalué à 4.
[^] # Re: le python c'est bon
Posté par spart . Évalué à 3.
Celles qui ont des équivalents natifs Ruby/Perl sont marshallées comme telles (ex. QString <=> chaine native, QStringList <=> liste native de chaines natives, etc.).
[^] # Re: le python c'est bon
Posté par Philippe F (site web personnel) . Évalué à 1.
[^] # Re: le python c'est bon
Posté par Philippe F (site web personnel) . Évalué à 6.
[^] # Re: le python c'est bon
Posté par Boa Treize (site web personnel) . Évalué à 3.
Par ailleurs, on peut s'en servir pour patcher des objets pas à jour : genre tu es sur un vieux Python, tu ajoutes la méthode qui manque. (Bon, ça reste pas très ordinaire, c'est sûr, mais j'ai vu faire.)
[^] # Re: le python c'est bon
Posté par TImaniac (site web personnel) . Évalué à 1.
genre tu es sur un vieux Python, tu ajoutes la méthode qui manque.
Vi mais comme d'hab quel est l'intérêt de le faire dynamiquement plutôt que statiquement.
[^] # Re: le python c'est bon
Posté par Gabriel . Évalué à 1.
Les methodes d'une classe sont stockees par exemple dans un dictionnaire attache a la classe
C'est un dictionnaire natif ou c'est une customisation à faire a posteriori?
Parce que si c'est simplement une possibilité de rajouter à chaque fois, dans un dictionnaire géré par le programme, les noms des méthodes - ça voudrait dire que c'est pas de l'introspection mais une façon d'accéder aux méthodes ; au lieu de chercher les dynamiquement (introspection) , sans a priori savoir quelles elles sont. ça ressemble plus à de l'orienté aspect - comme tu dis plus bas.
[^] # Re: le python c'est bon
Posté par Boa Treize (site web personnel) . Évalué à 4.
>>> liste = [1, 2, 3]
>>> dir(liste)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__str__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> liste.__add__
<method-wrapper object at 0x403ee9ac>
>>> dir(liste.__add__)
['__call__', '__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__']
>>> # etc...
[^] # Re: le python c'est bon
Posté par Pinaraf . Évalué à 1.
Tu prends un parseur de docs XML (j'ai pas eu le temps de regarder ça en python) en DOM.
Genre ce fichier XML :
[racine]
[test]
[aa]
Contenu
[/aa]
[test]
[/racine]
Avec la modif dynamique d'une classe, c'est très pratique à parser (style SimpleXml dans PHP5) :
doc = XMLDoc ("fichier.xml")
print "Le contenu est " + doc.racine.test.aa.get_content()
D'accord, sans modif dynamique, c'est facile suffit de l'opérateur [] :
print "Le contenu est " + doc["racine"]["test"]["aa"].get_content() # note : c'est de l'à peu près :p
Ou mieux :
print "Le contenu est " + doc.xpath_content ("/racine/test/aa/")
[^] # Re: le python c'est bon
Posté par Philippe F (site web personnel) . Évalué à 2.
On peut eventuellement utiliser des outils de couverture de code (valider que les tests unitaires exercent tous les chemins) mais je ne suis pas sur ca suffise.
Typiquement, comme les type sont dynamiques, je me retrouve souvent a abuser un peu de ca, et ca peut faire mal:
def f( a ):
if not type(a) is type([]): a = [ a ]
# now, treat a as a list
def g( b ):
if type(b) is type([]):
for e in b:
g(b)
Dans ces deux cas, g et f acceptent deja deux types d'arguments (a noter pour les pythonistes que g peut s'ecrire plus simplement avec map).
En fait, je pense que ce n'est pas un bon style de programmation parce que c'est un peu dangereux. C'est avec ce genre de connerie qu'on se retrouve avec des chemins d'execution hyper complexes et qu'on peut lever une exception au mauvais moment.
[^] # Re: le python c'est bon
Posté par Papey . Évalué à 3.
En effet, ce genre de traitement est vraiment dangereux. Avec ce genre de "patchage d'arguments" tu n'as aucune idée de ce que fait exactement ton programme. Si par mégarde un argument mal formé parvient à ta fonction, le programme continue comme si de rien n'était et va provoquer une erreur peut-être à l'autre bout de ton code source (si tu as mis des patches de ce genre-là un peu partout). Bon courage pour trouver l'origine de l'erreur dans ce cas-là...
[^] # Re: le python c'est bon
Posté par ArBaDaCarBa . Évalué à 1.
Je connais pychecker (http://pychecker.sourceforge.net/(...)) qui est vraiment excellent, mais pas peak. Est-ce que c'est ça: http://peak.telecommunity.com/(...) ?
[^] # Re: le python c'est bon
Posté par Antoine . Évalué à 4.
http://boo.codehaus.org/(...)
C'est basé sur .Net (tourne sous Mono), et semble relativement rapide.
[^] # Re: le python c'est bon
Posté par ArBaDaCarBa . Évalué à 1.
Pour faire plaisir à RB (http://linuxfr.org/comments/504102.html#504102(...)), il n'y a plus à déclarer self dans les fonctions.
# Maturité
Posté par Veiovis . Évalué à 3.
[^] # Re: Maturité
Posté par ArBaDaCarBa . Évalué à 4.
Je trouve en plus le principe des PEP vraiment excellent.
[^] # Re: Maturité
Posté par Fabien (site web personnel) . Évalué à 2.
[^] # Re: Maturité
Posté par ArBaDaCarBa . Évalué à 1.
# Pourquoi tous ces self ?
Posté par RB . Évalué à 2.
[^] # Re: Pourquoi tous ces self ?
Posté par Nicolas Évrard (site web personnel, Mastodon) . Évalué à 6.
Explicit is better than implicit
Grâce à cela tu sais automatiquement que
self
(que tu aurais pu appelerme
) est l'instance qui possède la méthode.Mais si tu veux tout savoir GvR y répond là:
http://mail.python.org/pipermail/tutor/2004-April/028999.html(...)
[^] # Re: Pourquoi tous ces self ?
Posté par Gniarf . Évalué à 4.
> Explicit is better than implicit
ah, comme COBOL, quoi :)
[^] # Re: Pourquoi tous ces self ?
Posté par Amand Tihon (site web personnel) . Évalué à 2.
ah, comme COBOL, quoi :)
Merci de ne pas confondre « explicite » et « verbeux » :-)
[^] # Re: Pourquoi tous ces self ?
Posté par lasher . Évalué à 3.
[^] # Re: Pourquoi tous ces self ?
Posté par Ramso . Évalué à 1.
[^] # Re: Pourquoi tous ces self ?
Posté par reno . Évalué à 0.
Le 'Explicit is better than implicit' est un argument creux: si c'était le cas, on programmerait toujours en assembleur: il n'y a pas plus explicite comme language.
Bon, c'est comme tout, cela a des avantages et des inconvénients.
Le seul réel avantage que je connaisse , c'est pour appeler un attribut f sur une liste d'objets, on peut faire facilement un map( f , <liste d'objet>) mais au niveau cout visuel c'est quand même cher payé!
[^] # Re: Pourquoi tous ces self ?
Posté par Nicolas Évrard (site web personnel, Mastodon) . Évalué à 3.
J'ai lu les commentaires "Explicit is better than implicit" mais je soupconne que c'est une justification 'a posteriori', cela reflete juste qu'historiquement au debut il n'y avait pas d'objet et cela a été rajouter ensuite..
C'est tout à fait ça. Guido l'explique dans le lien que je donne dans mon commentaire.
Le 'Explicit is better than implicit' est un argument creux: si c'était le cas, on programmerait toujours en assembleur: il n'y a pas plus explicite comme language.
Le fait de chercher à ne rien cacher de ce qu'il se passe est au contraire une grande force de python. D'ailleurs, les décorateurs sont un peu à côté de la plaque à ce niveau là, je ne trouve pas qu'ils soient franchement très parlant. Pas mal de syntaxes différentes ont été proposées et celle choisie n'est pas (à mon avis) la meilleure.
J'aurai largement préférer un truc tel que
qui a l'avantage de ne pas introduire un nouveau symbole, de bien montrer la subordination des méthodes à un décorateur et qui n'oblige pas à répéter le même décorateur pour toutes les fonctions. Mais bon c'est GvR qui a le dernier mot et puis il faut voir à l'usage, peut-être que je préférerai ce choix là dans un an.
[^] # Re: Pourquoi tous ces self ?
Posté par reno . Évalué à 2.
Oui, mais ce n'est pas appliqué partout autrement python serait de l'assembleur, un bon contre exemple est l'unification des int et des long int en python.. Pour l'appel de fonction, ce principe la aurait put s'appliquer ou pas, il l'a été mais bof..
Pour ce qui est des décorateurs, j'avoue ne pas comprendre ce que c'est ni à quoi ça sert, quelqu'un aurait-il une URL qui explique cela de façon claire? J'ai déja essayer de lire le PEP, mais sans succes..
[^] # Re: Pourquoi tous ces self ?
Posté par lolop (site web personnel) . Évalué à 3.
http://peak.telecommunity.com/DevCenter/VisitorRevisited(...)
Et dans le PEP il ya a quand même quelques exemples:
http://www.python.org/peps/pep-0318.html(...)
A+
Laurent.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Pourquoi tous ces self ?
Posté par Philippe F (site web personnel) . Évalué à 3.
Au contraire, l'assembleur est plutot obscur comme langage. Python est d'une clarte limpide a la lecture et ca, ca vaut cher.
J'avoue que ca me gonflait aussi un peu au debut, maintenant, je m'y suis fait meme si je l'oublie de temps en temps, ou si je le rajoute sur des fonctions qui n'en ont pas besoin.
Note que ce n'est pas le seul langage qui demande a declarer explicitement l'instance de l'objet. C'est le cas aussi pour lua, il me semble que c'est aussi le cas pour javascript et je suis sur qu'on peut en exhiber un certtain nombre comme ca.
[^] # Re: Pourquoi tous ces self ?
Posté par reno . Évalué à 3.
Tu confonds clareté et explicite/implicite: python est très simple à lire, très claire car il fait des tas d'opérations implicite derriere ton dos: conversion int<-> big_int, ramasse-miette, etc.. qui doivent être fait de maniere explicite en C ou en assembleur..
Sinon pour le self explicite, c'est assez répandu effectivement sur tout les languages ou les objets ont été rajoutés apres, en surcouche..
Et je trouve cela tres moche, d'ailleurs je me demande pourquoi ne pas tout simplement avoir 2 mots: def pour définir les methodes (sans le self) et fun pour définir les fonctions..
[^] # Re: Pourquoi tous ces self ?
Posté par Antoine . Évalué à 6.
Parce qu'en Python, une méthode c'est simplement une fonction qui a été ajoutée comme attribut d'une classe ou d'un objet.
Par exemple si j'ai une classe Carre:
class Carre(object):
def __init__(self, cote):
self.cote = cote
Je peux définir une fonction aire_carre pour calculer l'aire d'un carré :
def aire_carre(carre):
return carre.cote ** 2
print aire_carre(Carre(5)) # affiche 25
Et il suffit d'attacher cette fonction à la classe Carre pour en faire une méthode :
Carre.aire = aire_carre
print Carre(6).aire() # affiche 36
# Et les perfs ?
Posté par Boa Treize (site web personnel) . Évalué à 4.
Environ 5% plus rapide que Python 2.3, et 35% plus rapide que Python 2.2. Quand même ! Bon, le benchmark utilisé est standard mais pas très représentatif, si vous avez d'autres chiffres, faites passer.
Je suis impressionné par le travail de Raymond Hettinger, qui me donne l'impression d'être l'accélérateur de Python.
[^] # Re: Et les perfs ?
Posté par opq . Évalué à 3.
De plus, ces hacks sont propre au CPython et pas toujours facile à rendre / à faire passer aux autres implèmentations (ironpython, jython)
Enfin, certains vont lui repprocher des accélérations aux détriments de la complexité du langage. (en terme d'utilisation, pas juste le code). Un exemple : le module dequeue pour faire des piles. C'est rapide, mais ca fait un type de base que personne ne va aller chercher, vu que tout le monde va passer par une liste.
--OPQ
# Quel éditeur/IDE pour python ?
Posté par Thomas Carrié . Évalué à 3.
[^] # Re: Quel éditeur/IDE pour python ?
Posté par Amand Tihon (site web personnel) . Évalué à 2.
Pour tester des trucs un peu plus gros, mcedit ou Kate, suivant l'inspiration et la phase de la lune.
Pour le "vrai" développement, Kate
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 4.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Quel éditeur/IDE pour python ?
Posté par ArBaDaCarBa . Évalué à 2.
Et sinon, est-ce que quelqu'un arrive à se servir de Leo (http://leo.sourceforge.net/(...)) ?
[^] # Re: Quel éditeur/IDE pour python ?
Posté par golum . Évalué à 3.
Leo , j'ai jamais réussi à m'en servir correctement car y'a toujours une incompatibilié avec la version de wxWidgets
</_TROLL_>
Si tu veux du portable basé sur wxWidgets et stable tu peux essayer
SPE
http://spe.pycs.net/(...)
Pour faire des trucs simples, y'a rien de mieux que Scite
J'aime bien aussi Drpython :
http://drpython.sourceforge.net/(...)
Sinon tu as aussi le plugin Eclipse qui bouge pas mal en ce moment
http://pydev.sourceforge.net/(...)
cf:
http://c2.com/cgi/wiki?PythonPluginForEclipse(...)
[^] # Re: Quel éditeur/IDE pour python ?
Posté par golum . Évalué à 2.
http://www.serpia.com/spe_tutorial/spe_tutorial.htm(...)
[^] # Re: Quel éditeur/IDE pour python ?
Posté par ArBaDaCarBa . Évalué à 1.
Pour un plus gros travail emacs, car *par défaut* il insère des espaces au lieu de tabulations...
Bicycle Repair Man (http://bicyclerepair.sourceforge.net/(...)) n'est pas un IDE, mais c'est quand même très pratique à avoir.
[^] # Re: Quel éditeur/IDE pour python ?
Posté par manatlan (site web personnel) . Évalué à 3.
[^] # Re: Quel éditeur/IDE pour python ?
Posté par eJah . Évalué à 2.
Merci :)
[^] # Re: Quel éditeur/IDE pour python ?
Posté par _ . Évalué à 1.
C'est du TK donc c'est pas super beau mais à part ça c'est très pratique et on sent que ça a été programmé par des gens qui utilisent bcp python (cad guido ici :)
C'est pas un super IDE avec 50 fonction intégrée mais il soutient largement la comparaison face à kate par exemple.
Sinon y'a eric3 qui est "le super IDE avec 50 fonctions intégrées"
Enfin, l'indétônable emacs gère très bien python
[^] # Re: Quel éditeur/IDE pour python ?
Posté par Fabimaru (site web personnel) . Évalué à 1.
[^] # Re: Quel éditeur/IDE pour python ?
Posté par syntaxerror . Évalué à 3.
SPE à l'air pas mal du tout: http://spe.pycs.net/(...)
Spe is a python IDE with auto-indentation, auto completion, call tips, syntax coloring, syntax highlighting, class explorer, source index, auto todo list, sticky notes, integrated pycrust shell, python file browser, recent file browser, drag&drop, context help, ... Special is its blender support with a blender 3d object browser and its ability to run interactively inside blender. Spe ships with wxGlade (gui designer), PyChecker (source code doctor) and Kiki (regular expression console). Spe is extensible with wxGlade.
Mais bon, j'ai juste un peu joué avec. Pour ce que je fais, je reviens vite à emacs ou vi selon l'humeur ou l'environnement.
[^] # Re: Quel éditeur/IDE pour python ?
Posté par Philippe F (site web personnel) . Évalué à 2.
[^] # Re: Quel éditeur/IDE pour python ?
Posté par golum . Évalué à 4.
http://pydev.sourceforge.net/(...(...))
Il semblerait que la dernière version en propose un, mais j'ai pas testé
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.