예를 들어, 개체에는 두 가지 특성 만있는 person 개체 (이 예에서는 )에만 이름과 두 번째 이름 만 있습니다. 비행 중에 성별 속성을 만들 수 있습니까? 감사.파이썬 객체에 속성을 동적으로 생성 할 수 있습니까?
3
A
답변
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
2
를 인쇄합니다 tell you '
+2
'__dict__'을 잊어 버리고'setattr' /'getattr'을 사용하십시오. 인스턴스 사전에 액세스하는 것은 쉽지 않습니다. 대다수는 아니지만 고려해야 할 공통적 인 경우 (예 :'__slots__', 예전 스타일의 클래스, 속성, 다른 속성 액세스 덮어 쓰기, 아마도 더 많은 경우)에서는 실패합니다. – delnan
+0
@delan : 제안대로 수정했습니다. – yosukesabai
관련 문제
- 1. 동적으로 객체에 대한 속성을 추가하십시오.
- 2. 동적으로 객체에 속성을 동적으로 추가하는 방법 #
- 3. Ruby 객체에 속성을 동적으로 추가합니다.
- 4. 파이썬 : C 라이브러리에 의해 생성 된 객체에 속성을 주입
- 5. 위젯을 동적으로 생성 할 수 있습니까?
- 6. MySQL에서 테이블을 동적으로 생성 할 수 있습니까?
- 7. PostgreSQL에서 사전을 동적으로 생성 할 수 있습니까?
- 8. Java로 xsd를 동적으로 생성 할 수 있습니까?
- 9. blockoppertion (AFNetwork)에서 배열의 객체에 속성을 추가 할 수 있습니까?
- 10. antlr은 파이썬 코드를 생성 할 수 있습니까?
- 11. 동적으로 생성 된 GUI JTextField 객체에 액세스
- 12. 엔티티 개체에 속성을 동적으로 추가 할 수 있습니까?
- 13. 어떻게 객체에 새 속성을 추가 할 수 있습니까?
- 14. C#에서 객체에 속성을 추가 할 수 있습니까?
- 15. 동적으로 생성 된 객체에 전환 추가
- 16. Android 매니페스트 속성을 동적으로 변경할 수 있습니까?
- 17. C#에서 속성을 동적으로 추가 할 수 있습니까?
- 18. [필수] 속성을 ASP.NET MVC ViewModel에 동적으로 적용 할 수 있습니까?
- 19. JavaScript를 사용하여 링크에 동적으로 "href"속성을 추가 할 수 있습니까?
- 20. 언제 ASPError 객체에 액세스 할 수 있습니까?
- 21. sfWidgetFormPropelChoice에서 생성 된 각 옵션 태그에 동적으로 속성을 추가 할 수 있습니까?
- 22. 엔티티에서 DB 테이블과 관계없이 속성을 생성 할 수 있습니까?
- 23. 루프 내에서 여러 SystemVerilog 속성을 생성 할 수 있습니까?
- 24. JavaScript : 리터럴 표기법을 사용하여 동일한 객체에 속한 다른 속성을 사용하여 객체의 속성을 정의 할 수 있습니까?
- 25. 왜 동적으로 System.Xml.XmlDocument를 생성 할 수 없습니까?
- 26. ormlite를 사용하여 Android에서 DAO 레이어를 동적으로 생성 할 수 있습니까?
- 27. Msbuild가 Item.Metadata의 목록을 동적으로 생성 할 수 있습니까?
- 28. 어떻게 동적으로 생성 된 컨트롤을 조작 할 수 있습니까?
- 29. 어떻게 컴파일 된 스파크 뷰를 동적으로 생성 할 수 있습니까?
- 30. 어떻게 동적으로 생성 된 양식을 처리 할 수 있습니까?
이 방법으로주의해야합니다 :'Person(). gender'를 호출하면 Att를 얻을 수 있습니다. ributeError, attr이 없으면 잡으십시오. – Daenyth