57

PEP8 に準拠する長い assert ステートメントをどのようにフォーマットしますか? 私の例の人為的な性質を無視してください。

def afunc(some_param_name):
    assert isinstance(some_param_name, SomeClassName), 'some_param_name must be an instance of SomeClassName, silly goose!'

組み込み関数ではなくキーワードであるため、 assert ステートメントの動作が変わるため、括弧で囲むことはできません。

4

5 に答える 5

79

PEP8 は単なるガイドラインであり、ルールを破る必要がある場合もあるとさえ述べていることを覚えておくことが重要です。

しかし、最も重要なことは、いつ矛盾するかを知ることです。スタイル ガイドが適用されない場合もあります。

それを念頭に置いて、おそらく古いスタイルの行継続でこれを書くでしょう:

def afunc(some_param_name):
    assert isinstance(some_param_name, SomeClassName), \ 
           'some_param_name must be an instance of SomeClassName, silly goose!'

それがあなた(またはあなたのリンター)にうまく合わない場合は、いつでも行うことができます:

def afunc(some_param_name):
    assert isinstance(some_param_name, SomeClassName), ( 
           'some_param_name must be an instance of SomeClassName, silly goose!')

あるいは:

def afunc(some_param_name):
    assert isinstance(some_param_name, SomeClassName), ( 
           'some_param_name must be an instance of SomeClassName, '
           'silly goose!')
于 2013-04-17T16:36:51.163 に答える
7
ERR_MESSAGE_01 = '''
Some really long error message
'''

assert condition(a,b), ERR_MESSAGE_01

私はそれを行う方法です...そして、それはうまく準拠していると思います..

于 2013-04-17T16:37:26.587 に答える