Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche sur les attributs d'un objet

6 réponses
Avatar
Alex Marandon
Bonjour,

Actuellement, pour rechercher les attributs d'un objet dans
l'interpréteur interactif, je fais quelque chose comme ca :

filter(lambda s:s.find('find') != -1, dir(''))

Pas très élégant, surtout le "!= -1". Cela me frustre d'autant plus
qu'en Ruby je faisait juste :

''.methods.grep /find/i

(Ce qui de plus rends la recherche insensible a la casse.)

Des idées pour améliorer mon quotidien de codeur Python ?

6 réponses

Avatar
Francois
Je vais peut-être dire une bêtise, mais pour afficher les attributs d'un
objet obj, il suffit de taper

obj.__dict__


non ?


--
François
Avatar
Bruno Desthuilliers
Je vais peut-être dire une bêtise, mais pour afficher les attributs d'un
objet obj, il suffit de taper

obj.__dict__


non ?



Ca ne renverra que les attributs de l'instance. Pour avoir tous les
attributs de l'objet, utilise dir(obj).

Avatar
Bruno Desthuilliers
Bonjour,

Actuellement, pour rechercher les attributs d'un objet dans
l'interpréteur interactif, je fais quelque chose comme ca :

filter(lambda s:s.find('find') != -1, dir(''))

Pas très élégant, surtout le "!= -1". Cela me frustre d'autant plus
qu'en Ruby je faisait juste :

''.methods.grep /find/i

(Ce qui de plus rends la recherche insensible a la casse.)


[n for n in dir(str) if 'find' in n.lower()]

Des idées pour améliorer mon quotidien de codeur Python ?


http://docs.python.org/lib/module-rlcompleter.html
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/496812

Avatar
|-| /-\\ |_ \(\)7 [°¿°]
Bonsoir !

Si on accepte de surseoir à la "mode (addictive) monoligne" :

def trouvfind(chaine):
return('find' in chaine)

print filter(trouvfind,dir(toto))


@-salutations
--
Michel Claveau
Avatar
Alex Marandon
Bruno Desthuilliers wrote:
Actuellement, pour rechercher les attributs d'un objet dans
l'interpréteur interactif, je fais quelque chose comme ca :

filter(lambda s:s.find('find') != -1, dir(''))


[n for n in dir(str) if 'find' in n.lower()]


Ah, l'opérateur in, je l'oublie toujours celui là !

Des idées pour améliorer mon quotidien de codeur Python ?


http://docs.python.org/lib/module-rlcompleter.html
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/496812


Merci beaucoup Bruno, c'est ajouté à mon PYTHONSTARTUP !


Avatar
Bruno Desthuilliers
Bruno Desthuilliers wrote:
Actuellement, pour rechercher les attributs d'un objet dans
l'interpréteur interactif, je fais quelque chose comme ca :

filter(lambda s:s.find('find') != -1, dir(''))


[n for n in dir(str) if 'find' in n.lower()]


Ah, l'opérateur in, je l'oublie toujours celui là !

Des idées pour améliorer mon quotidien de codeur Python ?


http://docs.python.org/lib/module-rlcompleter.html
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/496812


Merci beaucoup Bruno, c'est ajouté à mon PYTHONSTARTUP !


Ca change la vie, hein ?-)