클래스의 생성자는 종종 인수를 가져 와서 인스턴스에 저장합니다. 자동으로 생성자 인수 저장
- 이 특정 클래스 또는 실패합니다 다음과 같이
from inspect import getargspec def save_args(values): for i in getargspec(values['self'].__init__).args[1:]: values['self'].__dict__[i] = values[i] class Example(object): def __init__(self, title='',backtitle='', height=20, width=50): save_args(vars())
내 질문
은 예를 들어 : 나는이 작업을 자동으로 할 수있는 도우미 함수를 만들 수 있도록class Example(object): def __init__(self, title='',backtitle='', height=20, width=50): self.title = title self.backtitle = backtitle self.height = height self.width = width
이 반복적이다 기구들
- 자이 썬에서 동작 할까? 파이썬 2.7과 3.2에서 나를 위해 일했다.
- 더 간단한 대안이 있습니까?
- 이미 파이썬 패키지가 있습니까?
FGITW을 - 그건 실제로 첫 번째 것이 중요 할 때 개별적으로 OP 질문을 개별적으로 다루려고 시도 할 때 얻은 것입니다. – mgilson
지난 6 개월 동안 어딘가에 파이썬 아이디어에 대한 토론이있었습니다. 사람들은 300 가지의 다른 구현을 제안하고 논쟁했습니다. 정말로 관심이 있다면 아카이브를 검색해 볼 가치가 있습니다. (IIRC, 당신이 이식성에 신경 쓰지 않는다면,'getargspec'이 할 수없는 몇 가지 경우를 처리하는 프레임 해커를 사용하는 해결책이 있습니다. 그러나 어떤 경우인지 기억하지 못합니다.) – abarnert
이것은 메타에서 깔끔하게 처리 될 수도 있습니다 -class는 기존의'__init__'을 감싸고 있지만, 내 머리 속에서 작동하는 방법을 완전히 형성하지는 못했지만 (대개 나는 메타 클래스로 경험이 거의 없기 때문에) – mgilson