1
特定のタスクを実行するPythonデコレータを作成したいと思いますが、@staticmethodが行うこともします。これを達成しましたが、PyDevを使用すると、メソッドにselfパラメータがないため、使用法が正しくないことがわかります。@staticmethod再実装のPydevエラーを表示する
私の簡素化の実装は以下の通りです:
class Service(object):
def __init__(self, f):
self.f = f
def __get__(self, obj, objtype=None):
return self.f
と使用方法は次のとおりです。私はこのPythonのプログラムを実行すると
class Environment:
@Service
def getConfig(input):
return 50
、すべてがうまく動作しますが、PyDevは、それが誤りだと思っているようです。 pydevでこのタイプのエラーのチェックを無効にする簡単な方法はありますか?残りの機能はそのままにしておきますか?
また、@staticmethodと@Serviceを連鎖させる2つのデコレータを使用することもできます(これはおそらく関数でもあります)。個人的には、デコレータはメソッド/関数/モジュール命名規則を使用すべきだと私は考えています。 'サービス'ではなく 'サービス'である。 ( 'staticmethod'はクラスだと考えてください。) –