Ich glaube, dass Sie etwas in dieser Art wollen:
eine Liste von Attributen eines Objekts
Die eingebaute Funktion dir()
kann diese Aufgabe übernehmen.
Entnommen aus help(dir)
Ausgabe auf Ihrer Python-Shell:
dir(...)
dir([object]) -> list of strings
Bei einem Aufruf ohne Argument werden die Namen im aktuellen Bereich zurückgegeben.
Andernfalls wird eine alphabetisch geordnete Liste von Namen zurückgegeben, die (einige) der Attribute des angegebenen Objekts und der von ihm aus erreichbaren Attribute enthält.
Wenn das Objekt eine Methode namens __dir__
wird sie verwendet; andernfalls wird die standardmäßige dir()-Logik verwendet und zurückgegeben:
- für ein Modulobjekt: die Attribute des Moduls.
- für ein Klassenobjekt: seine Attribute und rekursiv die Attribute seiner Basen.
- für jedes andere Objekt: seine Attribute, die Attribute seiner Klasse und rekursiv die Attribute der Basisklassen seiner Klasse.
Zum Beispiel:
$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = "I am a string"
>>>
>>> type(a)
<class 'str'>
>>>
>>> dir(a)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__',
'__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__',
'__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'_formatter_field_name_split', '_formatter_parser', 'capitalize',
'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find',
'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace',
'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition',
'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip',
'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
'translate', 'upper', 'zfill']
0 Stimmen
Einschlägig: stackoverflow.com/q/46033277/1959808