2011-07-21 21 views
7

私はPython 2.7を使って私の最初のプロジェクトに取り組んでいます。私たちはJavaのバックグラウンドから来ており、最初の本能はPythonコードをJava風の方法で書くことでした。しかし今、私たちはできるだけ多くの人に適応しようとしています。これまでのところ、pylintを使用してコードを修正しています。python styling ** question

今私はで状況を遂行し続けています。。私が**dataのようなものを使用してメソッドに値を渡すたびに、 pylint 警告*または**を使用することについての警告が表示されます。今私の質問は:**は、Pythonコードを書くための悪いスタイリングを使用していますか?これを使用するための標準的な置き換えはありますか?

是非ともよろしく、 ボグダン

+1

コードの例を貼り付けることはできますか? –

答えて

4

**は何かを受け入れるので、もう少しトリッキーなバグを導入することができます。通常は、間違って呼び出されたときに中断するコードが必要です。次に例を示します。

def dostuff(**kwargs): 
force = 3 
if kwargs.get('reallyhard', False): 
    force += 5 
# and so on 

# Now you need luck to find this bug ... 
dostuff(fancy=True, funky=False, realyhard=True) 

あなたは引数名を入力するのが面倒なので、あなただけの**を使用しないでください。それは常に可能なわけではないので、正当な使用もあります。

+0

すべての入力をありがとう。そうでなければ必要なことをするのは非常に難しいでしょう。例えば、私たちは、異なるインタフェースを持つそれぞれのイントロスペクションによってディナム的に作成されたアダプタインスタンスを受け取るlauchメソッドを持っています。したがって、必要な入力データはアダプタごとに異なります。 – Bogdan

2

**によって生成された引数はすべて有効であることを確認するために、静的解析を使用することはほぼ不可能だが、それが唯一の適切なメカニズムであるならば、それらはそれを使用するのです。

2

**これは、他の機能に引数を転送するために設計されたものに優れています。あなたは間違いなくあなたのコードの可読性を低下させる悪いことをすることができますが、それ自体が悪い習慣とはみなされません。