Så det jeg leter etter her er noe sånt som PHPs print_r funksjon. Dette er slik at jeg kan feilsøke skriptene mine ved å se hva som er tilstanden til det aktuelle objektet.
def dump(obj):
for attr in dir(obj):
print("obj.%s = %r" % (attr, getattr(obj, attr)))
Det er mange tredjepartsfunksjoner der ute som legger til ting som unntakshåndtering, nasjonal / spesialtegnutskrift, recursing i nestede objekter etc. i henhold til forfatterens preferanser. Men de alle i utgangspunktet koker ned til dette.
dir har blitt nevnt, men det gir deg bare navnene på attributtene. Hvis du også vil ha verdiene deres, kan du prøve __dict__.
class O:
def __init__ (self):
self.value = 3
o = O()
Her er resultatet:
>>> o.__dict__
{'value': 3}
Du kan bruke funksjonen "dir()" for å gjøre dette.
>>> import sys
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdo
t__', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder
, 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'exc_clear', 'exc_info'
'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefault
ncoding', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'getwindowsversion', 'he
version', 'maxint', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_
ache', 'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setprofile', 'setrecursionlimit
, 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoption
', 'winver']
>>>
En annen nyttig funksjon er hjelp.
>>> help(sys)
Help on built-in module sys:
NAME
sys
FILE
(built-in)
MODULE DOCS
http://www.python.org/doc/current/lib/module-sys.html
DESCRIPTION
This module provides access to some objects used or maintained by the
interpreter and to functions that interact strongly with the interpreter.
Dynamic objects:
argv -- command line arguments; argv[0] is the script pathname if known