2016-04-19 16 views
0

特定のデコレータで飾られたメソッドに何らかの構文を適用できるPylintプラグを記述したいと思います。関数の命名規則を適用する

私のモジュールは@specialfunctionが飾られていますがget_で始まらない任意のメソッドを持っている場合たとえば、@specialfunctionデコレータが飾られているすべての機能が、単語「のget_」

@specialfunction 
def get_foo(self): 
... 


@specialfunction 
def get_bar(self): 
... 

で始める必要があり、それをエラーが発生するはずです。このようなpylintプラグインを書く方法をお勧めしますか?

答えて

0

実行時に十分なチェックをしていますか?

def specialfunction(f): 
    if not f.__name__[:4] == 'get_': 
     raise TypeError("Can't use the decorator on a non-get function") 
    return f 

@specialfunction 
def get_foo(x): 
    return "foo" 

@specialfunction # TypeError raised here 
def bar(y, z): 
    return "bar" 

問題のあるモジュールをインポートすると、通常、エラーが発生します。これは、Pylintプラグインを作成するよりも簡単です。

+0

これは興味深い方法ですが、目的にはあまり役立ちません。とにかく提案をありがとう:) –