Αυτό που ψάχνω εδώ είναι κάτι σαν τη συνάρτηση print_r της PHP. Αυτό γίνεται για να μπορώ να αποσφαλματώσω τα σενάριά μου βλέποντας ποια είναι η κατάσταση του εν λόγω αντικειμένου.
def dump(obj):
for attr in dir(obj):
print("obj.%s = %r" % (attr, getattr(obj, attr)))
Υπάρχουν πολλές συναρτήσεις 3ου μέρους εκεί έξω που προσθέτουν πράγματα όπως χειρισμό εξαιρέσεων, εκτύπωση εθνικών/ειδικών χαρακτήρων, αναδρομή σε φωλιασμένα αντικείμενα κ.λπ. σύμφωνα με τις προτιμήσεις των δημιουργών τους. Αλλά όλες ουσιαστικά καταλήγουν σε αυτό.
Το dir έχει αναφερθεί, αλλά αυτό θα σας δώσει μόνο τα ονόματα των χαρακτηριστικών. Αν θέλετε και τις τιμές τους, δοκιμάστε το __dict__.
class O:
def __init__ (self):
self.value = 3
o = O()
Εδώ είναι η έξοδος:
>>> o.__dict__
{'value': 3}
Μπορείτε να χρησιμοποιήσετε τη συνάρτηση "dir()" για να το κάνετε αυτό.
>>> 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']
>>>
Ένα άλλο χρήσιμο χαρακτηριστικό είναι η βοήθεια.
>>> 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