Yani burada aradığım PHP'nin print_r fonksiyonu gibi bir şey. Bu, söz konusu nesnenin durumunun ne olduğunu görerek komut dosyalarımda hata ayıklayabilmem içindir.
def dump(obj):
for attr in dir(obj):
print("obj.%s = %r" % (attr, getattr(obj, attr)))
Dışarıda, yazarlarının tercihlerine göre istisna işleme, ulusal/özel karakter yazdırma, iç içe geçmiş nesnelere geri dönme gibi şeyler ekleyen birçok 3. taraf işlevi vardır. Ancak hepsi temelde şuna dayanır.
dir'den bahsedildi, ancak bu size yalnızca niteliklerin adlarını verecektir. Eğer onların değerlerini de istiyorsanız __dict__ deneyin.
class O:
def __init__ (self):
self.value = 3
o = O()
İşte çıktı:
>>> o.__dict__
{'value': 3}
Bunu yapmak için "dir()" fonksiyonunu kullanabilirsiniz.
>>> 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']
>>>
Bir diğer kullanışlı özellik ise yardım.
>>> 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