Programming

파이썬에서 객체의 속성을 열거하는 방법은 무엇입니까?

procodes 2020. 7. 26. 13:23
반응형

파이썬에서 객체의 속성을 열거하는 방법은 무엇입니까?


IC # 우리는 반사를 통해 그것을합니다. Javascript에서는 다음과 같이 간단합니다.

for(var propertyName in objectName)
    var currentPropertyValue = objectName[propertyName];

파이썬에서 어떻게합니까?


for property, value in vars(theObject).iteritems():
    print property, ": ", value

드문 경우지만 __slots__속성이 있으므로 이러한 클래스에는 종종 속성이 없습니다 __dict__.


참조하십시오 inspect.getmembers(object[, predicate]).

이름별로 정렬 된 (이름, 값) 쌍 목록에서 객체의 모든 멤버를 반환합니다. 선택적 술어 인수가 제공되면 술어가 참 값을 리턴하는 멤버 만 포함됩니다.

>>> [name for name,thing in inspect.getmembers([])]
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', 
'__delslice__',    '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', 
'__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', 
'__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__','__reduce_ex__', 
'__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', 
'__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 
'insert', 'pop', 'remove', 'reverse', 'sort']
>>> 

dir()간단한 방법입니다. 여기를 보아라:

파이썬 내부 검사 안내서


__dict__객체 속성은 정의 된 다른 모든 속성의 사전입니다. 파이썬 클래스는 getattr 을 무시 하고 속성처럼 보이지만 그렇지 않은 것을 만들 수 있습니다 __dict__. 또한 내장 기능이있다 vars()dir()미묘한 방법으로 다르다. 그리고 비정상적인 수업에서 __slots__대체 할 수 있습니다 __dict__.

파이썬에서는 객체가 복잡합니다. __dict__리플렉션 스타일 프로그래밍을 시작하기에 적합한 장소입니다. dir()대화식 쉘에서 해킹하는 경우 시작하는 곳입니다.


게오르그 scholly 짧은 버전

print vars(theObject)

모든 속성을 반영하려면 위의 답변이 좋습니다.

단순히 객체의 키를 얻으려면 다음을 사용하십시오.

my_dict.keys()

my_dict = {'abc': {}, 'def': 12, 'ghi': 'string' }
my_dict.keys() 
> ['abc', 'def', 'ghi']

참고 URL : https://stackoverflow.com/questions/1251692/how-to-enumerate-an-objects-properties-in-python

반응형