클라이언트 코드에 의해 구현되는 "인터페이스"가 있습니다.이 경우 "Pythonic"과 "convenient"의 균형을 어떻게 잡을 수 있습니까?
class Runner:
def run(self):
pass
run
는 일반적으로 docutils
node
를 반환해야하지만 일반 텍스트는 일반 텍스트이므로 호출자는 run
에서 run
를 반환 할 수 있습니다. 문자열은 type()
을 사용하여 로 확인되고 node
로 바뀝니다.
type()
과 같은 "연기"에 의한 형식이 될 수 없기 때문에 "Pythonic"을 이해하는 방식으로 "Python"이 아닙니다. 코드는 오리 입력을 사용해야합니다.
나는
def run_str(self):
pass
def run_node(self):
return make_node(self.run_str())
을 고려해 보았습니다.하지만 그다지 흥미롭지 않은 리턴 타입 인 를 이름에 넣었 기 때문에 걱정하지 않아도됩니다. 산만 해.
내가 놓친 아이디어가 있습니까? 또한, "나쁜"시스템으로 도로 아래에서 을 만날 수있는 문제가 있습니까? (더 안전하거나 덜 안전합니다)?
저는 조금 혼란 스럽습니다. 'run' (arg를 통해)에 전달 된 값에 대해 이야기하고 있습니까? 아니면'Runner' 인터페이스를 구현 한 객체의'run' 메소드가 반환 한 가상의 값을 처리하는 방법에 대해 이야기하고 있습니까? – senderle
나는 반환을 의미합니다. 나는 'arg'을 편집하여주의를 산만하게하지 않을 것입니다 (이것을 지적 해 주셔서 감사합니다). – Owen