Python에서 모든 개체 속성을 가져오시겠습니까?
Python에서 객체의 모든 속성/방법/필드/등등을 얻을 수 있는 방법이 있는가?
vars()
내가 원하는 것에 가깝지만, 물체에 어떤 것이 있지 않는 한 그것은 작동하지 않는다.__dict__
, 항상 진실인 것은 아니다(예를 들어, 그것은 a에 대한 사실이 아니다).list
adict
, 등).
기본 제공 기능을 사용하십시오.
나는 사용한다__dict__
그리고dir(<instance>)
예:
class MyObj(object):
def __init__(self):
self.name = 'Chuck Norris'
self.phone = '+6661'
obj = MyObj()
print(obj.__dict__)
print(dir(obj))
# Output:
# obj.__dict__ --> {'phone': '+6661', 'name': 'Chuck Norris'}
#
# dir(obj) --> ['__class__', '__delattr__', '__dict__', '__doc__',
# '__format__', '__getattribute__', '__hash__',
# '__init__', '__module__', '__new__', '__reduce__',
# '__reduce_ex__', '__repr__', '__setattr__',
# '__sizeof__', '__str__', '__subclasshook__',
# '__weakref__', 'name', 'phone']
당신이 아마 원하는 것은 입니다.
중요한 점은 클래스가 특수 프로그램을 재정의할 수 있다는 것이다.__dir__
원인이 되는 방법dir()
학급이 원하는 것을 반환하는 것(정확한 목록을 반환하도록 권장되지만, 이것은 시행되지 않는다).또한 일부 객체는 재정의하여 동적 특성을 구현할 수 있다.__getattr__
는 RPC 프록시 개체일 수도 있고 C 확장 클래스의 인스턴스일 수도 있다.만약 당신의 목적이 이런 예들 중 하나라면, 그들은 아마__dict__
또는 다음을 통해 포괄적인 속성 목록을 제공할 수 있음__dir__
: 이러한 물체들 중 다수는 너무 많은 동적 특성을 가지고 있을 수 있다. 당신이 그것에 접근하기 전까지는 그것이 가지고 있는 것을 실제로 알지 못할 것이다.
단기적으로 보면.dir()
충분치 않아, 당신은 넘나드는 함수를 쓸 수 있다.__dict__
그렇다면, 어떤 대상을 위해__dict__
의 모든 학급에서.obj.__class__.__mro__
; 비록 이것은 일반적인 비단뱀 개체에만 효과가 있을 것이다.장기적으로, 여러분은 오리 타이핑 + 추측을 사용해야 할지도 모른다 - 만약 그것이 오리처럼 보이면, 손가락을 교차시키고, 그것이 가지고 있기를 바란다..feathers
.
사용할 수 있다dir(your_object)
속성이랑getattr(your_object, your_object_attr)
가치를 얻다
사용법:
for att in dir(your_object):
print (att, getattr(your_object,att))
참조URL: https://stackoverflow.com/questions/6886493/get-all-object-attributes-in-python
'programing' 카테고리의 다른 글
Vue.js를 다른 페이지로 리디렉션 (0) | 2022.03.20 |
---|---|
이 종속성을 찾을 수 없음: ./node_modules의 구성 요소/main/Footer..../src/App.vue (0) | 2022.03.20 |
참조를 통해 하위 구성 요소 기능에 액세스하는 방법 (0) | 2022.03.19 |
react-reason - 처리기 구성 요소에 전달 (0) | 2022.03.19 |
React Navigator(탐색 반응) 버튼을 사용하여 모달 화면을 푸시하는 방법 (0) | 2022.03.19 |