Så hvad jeg leder efter her er noget som PHP's print_r funktion. Dette er så jeg kan debugge mine scripts ved at se hvad'er tilstanden af det pågældende objekt.
def dump(obj):
for attr in dir(obj):
print("obj.%s = %r" % (attr, getattr(obj, attr)))
Der findes mange tredjepartsfunktioner derude, der tilføjer ting som håndtering af undtagelser, udskrivning af nationale/specielle tegn, genindtastning i indlejrede objekter osv. i henhold til deres forfattere' præferencer. Men de koger alle grundlæggende ned til dette.
dir er blevet nævnt, men det giver dig kun navnene på attributterne. Hvis du også vil have deres værdier, så prøv __dict__.
class O:
def __init__ (self):
self.value = 3
o = O()
Her er resultatet:
>>> o.__dict__
{'value': 3}
Du kan bruge funktionen "dir()" til at gø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 anden nyttig funktion er hjælp.
>>> 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