2011-11-04 4 views

답변

8

짧은 대답 : 예

class Person(object): 
    def __init__(self): 
     self.first_name = 'Will' 
     self.second_name = 'Awesome' 

my_guy = Person() 
my_guy.gender = "Male" 
print(my_guy.gender) 

늘 '당신이

my_guy = Person() 

attr = 'secret_habit' # this could be read from file, keybrd etc. 
value = 'wont tell you' 
setattr(my_guy, attr, value) 

print(my_guy.secret_habit) 

내가 얻을 수있는, 당신도 당신이 코드를 작성할 때이 속성이라는 것을 알고있는 경우 Male

+1

이 방법으로주의해야합니다 :'Person(). gender'를 호출하면 Att를 얻을 수 있습니다. ributeError, attr이 없으면 잡으십시오. – Daenyth

2

를 인쇄합니다 tell you '

+2

'__dict__'을 잊어 버리고'setattr' /'getattr'을 사용하십시오. 인스턴스 사전에 액세스하는 것은 쉽지 않습니다. 대다수는 아니지만 고려해야 할 공통적 인 경우 (예 :'__slots__', 예전 스타일의 클래스, 속성, 다른 속성 액세스 덮어 쓰기, 아마도 더 많은 경우)에서는 실패합니다. – delnan

+0

@delan : 제안대로 수정했습니다. – yosukesabai

관련 문제