İstediğin şunun böyle olduğuna inanıyorum:
bir nesneden niteliklerin listesi
Benim düşünceme göre, yerleşik işlev dir()
bu işi sizin için yapabilir. Alındığı help(dir)
Python Shell üzerinde çıktı:
dir (...)
dir([object]) -> list of strings
Bağımsız değişken olmadan çağrılırsa, geçerli kapsamdaki adları döndürün.
Aksi takdirde, verilen nesnenin niteliklerini ve ondan erişilebilen nitelikleri içeren (bazıları) alfabetikleştirilmiş bir ad listesi döndürün.
Nesne adlı bir yöntem sağlarsa __dir__
, bu yöntem kullanılır; aksi takdirde varsayılan dir () mantığı kullanılır ve döndürür:
- modül nesnesi için: modülün özellikleri.
- sınıf nesnesi için: öznitelikleri ve tabanlarının özyinelemeleri.
- diğer nesneler için: öznitelikleri, sınıfının öznitelikleri ve sınıfının temel sınıflarının özyinelemeli öznitelikleri.
Örneğin:
$ 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']
Sorununuzu kontrol ederken, düşünce trenimi çıktısının daha iyi biçimlendirilmesiyle göstermeye karar verdim dir()
.
dir_attributes.py (Python 2.7.6)
#!/usr/bin/python
""" Demonstrates the usage of dir(), with better output. """
__author__ = "ivanleoncz"
obj = "I am a string."
count = 0
print "\nObject Data: %s" % obj
print "Object Type: %s\n" % type(obj)
for method in dir(obj):
# the comma at the end of the print, makes it printing
# in the same line, 4 times (count)
print "| {0: <20}".format(method),
count += 1
if count == 4:
count = 0
print
dir_attributes.py (Python 3.4.3)
#!/usr/bin/python3
""" Demonstrates the usage of dir(), with better output. """
__author__ = "ivanleoncz"
obj = "I am a string."
count = 0
print("\nObject Data: ", obj)
print("Object Type: ", type(obj),"\n")
for method in dir(obj):
# the end=" " at the end of the print statement,
# makes it printing in the same line, 4 times (count)
print("| {:20}".format(method), end=" ")
count += 1
if count == 4:
count = 0
print("")
Umarım katkıda bulundum :).