私はリストにインターフェースを追加するPythonクラスの関数を持っています。関数のパラメータ型をPythonで強制しますか?
def RegisterAsListener(self, inListener):
self.__TransitListeners.append(inListener)
クラスはちょうど私のインターフェイスは、このオブジェクトをつかむとから継承し、すべての更新のために自身を登録する必要がありますので、これは、いいです。
class ITransit():
def TransitUpdate(self, data):
raise NotImplementedError("You must define this function.")
(私が正しくインターフェイスを作ったと仮定した場合)
私はこのプロジェクトの一つだけではないですので、私は誰かが不正なデータ型にRegisterAsListener関数を呼び出す必要はありません。私は、レジスタ関数内の型をチェックするコードを入れることができますが、コンパイラが間違ったデータ型で押してみるときにプログラマーがただ叫んでいたとすれば、ずっと簡単です。
def RegisterAsListener(self, IListener inListener):
self.__TransitListeners.append(inListener)
これを実行する方法はありますか?
'ちょうどコンパイラであればプログラマーに叫んだ。どのコンパイラ? – Abhijit
'abc'モジュールを使用して、オブジェクトが代わりに実装すべきものを定義します。 –
それ以外の場合、Pythonは*動的に型指定された*言語であり、オブジェクト型を強制しません。 –