0
클래스가 __slots__
을 덮어 쓰지 않을 때 클래스 인스턴스의 모든 멤버 이름과 값을 가져올 수 있습니다. 예를 들면 : 나는 위의 코드에서 __slots__ = ...
행의 주석을 해제하고 실행하면vars() 또는 __dict___을 사용하지 않고 클래스 멤버 이름과 값을 얻는 방법
class Animal(object):
#__slots__ = ('legs','name','color','smell','age','kids')
def __init__(self):
self.legs = 2
self.name = 'Dog'
self.color= 'Spotted'
self.smell= 'Alot'
self.age = 10
self.kids = 0
a = Animal()
for x in vars(a).items():
print(x[0],x[1])
그리고 출력 내가 vars() argument must have __dict__ attribute
을 말한다 오류가 발생합니다, 그러나
age 10
legs 2
name Dog
kids 0
smell Alot
color Spotted
입니다.
어쨌든 __slots__
을 재정의하면 모든 회원의 이름과 값을 얻을 수 있습니까?
사용'__slots__'를? – kindall
@kindall. 감사. '__slots__ '를 사용하여 이름을 얻을 수 있습니다. 값을 얻으려면 어떻게해야합니까? – Jimbo
사전 comprehension을 사용할 수 있습니다 : 예를 들어'obj'가 객체 인'{k : obj .__ 슬롯 __에서 k에 대해 getattr (obj, k)} '를 사용할 수 있습니다. – kindall