Ma version finale avec récupération d'erreur :
import code
import sys
def run(str):
print ">>> " + str
console.push(str)
class catch_stdout_stderr:
Type: Messages; Utilisateur: manur0
Ma version finale avec récupération d'erreur :
import code
import sys
def run(str):
print ">>> " + str
console.push(str)
class catch_stdout_stderr:
Je voulais juste parler de l'attribut __module__ d'une classe.
En effet si j'écris une fonction dump dans un fichier "dump.py", une classe A dans le fichier "aa.py" et une classe B dans le fichier...
En mettant les 2 codes ensemble, je n'ai pas de souci (avec Python 2.6.2).
import code
import sys
def run(str):
print ">>> " + str
console.push(str)
console =...
Il faut remplacer sys.stdout par une instance d'une classe avec la méthode write.
Par exemple :
import sys
class str_stdout:
def __init__(self):
self.stdout = sys.stdout
...
Une proposition :
import code
console = code.InteractiveConsole()
def run(str):
print ">>> " + str
console.push(str)
D'accord, je sais, c'est mieux d'éviter les variables globales mais enfin c'est quand même parfois utile.
Voilà donc une méthode triviale à laquelle je viens de penser, que je trouve plutôt élégante...
C'est tout à fait ça !
Merci pour ton code.
Ta méthode me parait bien pour dumper les classes d'un module a priori.
Si je veux faire une fonction dump() qui accepte n'importe quel objet (dont...
C'est bien ce que je craignais.
Merci beaucoup, je vais voir ce que je peux faire avec.
Je suis entrain d'écrire un module pour "dumper" n'importe quel objet python, mais je coince sur un cas :
class A:
class B:
pass
def dump_class(c):
print c.__module__ +...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.