파이썬에는 작업 클래스와 관련된 설정 사전이 있습니다. 이러한 작업의 부모 생성자에서 관련 설정 만 저장하려고하지만이 작업을 수행하려면 부모 클래스에서 하위 클래스에 액세스해야합니다. 생성자에서 get_class($this);
를 호출하여부모 클래스의 하위 클래스 인스턴스에 액세스
settings = {
SomeTask: { 'foo': 'bar' },
SomeOtherTask: { 'bar': 'foo' },
}
class SomeTask(BaseTask):
pass
class SomeOtherTask(BaseTask):
pass
class BaseTask:
def __init__(self, settings):
self.settings = settings[child_class]
나는이 작업을 수행 할 수 있습니다 파이썬이 비슷한 있는가, (자식 클래스 이름이 아닌 부모를 반환)? 당신은 설정 하위 클래스 중 하나를 초기화 할 때, 그들은 당신이 무엇을 기대 할 것
class BaseTask:
def __init__(self, settings):
self.settings = settings[self.__class__]
class SomeTask(BaseTask):
pass
class SomeOtherTask(BaseTask):
pass
:
정의가 정확하게 잘못된 순서로 있음을 알고 있습니까? – delnan
그래, 이걸 의도적으로 묘사 했어. (나에게) 이런 식으로 설명하는 것이 더 의미가있다. – Ross
자기 (또는 실제로 클래스 메소드의 첫 번째 인수)는 항상 작업중인 instanstiated 클래스를 참조합니다. –