クライアントコードによって実装される「インターフェース」があります。
class Runner:
def run(self):
pass
run
は一般に を返す必要docutils
node
がありますが、最も一般的なケースはプレーン テキストであるため、呼び出し元はrun
文字列を返すことができます。これは を使用してチェックtype()
され、 に変換されますnode
。
ただし、私が「Pythonic」を理解する方法は、これは「Pythonic」ではありません。これはtype()
、何かをチェックしても、型のように「振る舞う」ことによって型に「なる」ことができないためです。つまり、「Pythonic」コードはダックタイピングを使用する必要があります。
私は考慮した
def run_str(self):
pass
def run_node(self):
return make_node(self.run_str())
しかし、あまり面白くない戻り値の型が名前に含まれているため、私はこれを気にしません。それは気を散らすものです。
私が見逃したアイデアはありますか?また、「悪い」システムで将来遭遇する可能性のある問題はありますか (多かれ少なかれ安全に思えます)?