私はクライアントコードで実装される「インターフェース」があります。一般的な見返りにdocutils
node
をこの場合、「Pythonic」と「convenient」のバランスはどうすればできますか?
class Runner:
def run(self):
pass
run
をすべきであるが、遠く最も 一般的なケースはプレーンテキストであるため、呼び出し側はrun
を返すことができます文字列はを使用してチェックされ、node
に変わります。 になります。しかし
、私は「Python的」理解の方法は、これではない「Python的」理由 チェックすることで、それはタイプ「で」できません何かのtype()
1のように「演技」 - すなわち「Python的」コードはダックタイピングを使用する必要があります。
私は
def run_str(self):
pass
def run_node(self):
return make_node(self.run_str())
を検討したが、それは名前で右がそれほど面白くない戻り値の型 を置くので、私はこのために気にしません。それは気を散らす。
私が見逃したアイデアはありますか?また、私が "悪い"システム(それは多かれ少なかれ私にとって安全であると思われる)と道路の下に が遭遇するかもしれない問題はありますか?あなたはこのような何かを行うことができErrors and Exceptions.
私は少し混乱しています。 'run'に渡される値について(' arg'を介して)話していますか?あるいは、 'Runner'インターフェースを実装しているオブジェクトの' run'メソッドによって返された仮説的値をどう扱うかについて話していますか? – senderle
私はリターンを意味します。私は 'arg'を編集してしまいました(これを指摘してくれてありがとう)。 – Owen