2012-09-18 12 views
5

は、多くの場合、私は一時的なコメントにいくつかのコードが必要ですが、のような状況が存在する単一のコード行をコメントすると、構文エラーを取得する場所 PythonのNOOPは、交換

if state == False: 
    print "Here I'm not good do stuff" 
else: 
# print "I am good here but stuff might be needed to implement" 

として行動するかもしれない何かが存在し、次のこの構文を正しく保つためにNOOP?

答えて

12

あなたが探している操作がpassです。あなたの例のように、それは次のようになります。

if state == False: 
    print "Here I'm not good do stuff" 
else: 
    pass 
# print "I am good here but stuff might be needed to implement" 

あなたはここでそれについての詳細を読むことができます:

: は、Python 3では、...はかなり良いpass代替品を作るhttp://docs.python.org/py3k/reference/simple_stmts.html#pass

4

私は、トリプルクォートのコメント​​のコードをNOOPのように振る舞うので、コードが削除されたり、コメントが#となった場合にNOOPの役目を果たすトリプルクォートのコメントを置くことができることを発見しました。

上記のケースの場合:

if state == False: 
    '''this comment act as NOP''' 
    print "Here I'm not good do stuff" 
else: 
    '''this comment act as NOP and also leaves the 
    else branch visible for future implementation say a report or something''' 
# print "I am good here but stuff might be needed to implement" 
+7

「パス」(http://docs.python.org/reference/simple_stmts.html#pass)をnoopとして使用する必要があります。これは、短く、追加の意味を持たないという利点があります(文字列はプログラムによって望ましくない方法で解釈される可能性があります)。 – Nobody

+0

@Nobody避けるべきことを知るために望ましくない動作の例がありますか? –

+0

裸の文字列は大丈夫ですが、doctestをこれらの文字列に書き込まないように気を付けなければなりません。それとは別に、長い文字列の不要な構文解析が評価され、無視されるだけで返されます(おそらくこれは最適化されます)。私はまったく起こりそうもないコーナーケースを上回ることはできませんが、それにもかかわらず、「パス」はこのような状況のために作られたものです。このようにコメントを使用すると、プログラムのセマンティクスを変更することなくコメントを削除できます。 – Nobody

6

私はこれを「完了」と読んでいますが、passは「このページは意図的に空白になっています」という意味です。

実際にはNoneTrueFalseのような文字列ですが、すべて同じように最適化されています。