web-dev-qa-db-ja.com

Pythonの変数名の後の下線

私は他人のコードを解読していて、次のように見えます:

def get_set_string(set_):
     if PY3:
         return str(set_)
     else:
         return str(set_)

変数の後のアンダースコアは何かを意味していますか、またはこれは変数名の一部にすぎず、何も意味していませんか?

22
nanachan

末尾のアンダースコアに関連付けられているセマンティクスはありません。 Pythonのスタイルガイド _PEP 8_ によると、ユーザーはPythonキーワードやPython組み込み:

_single_trailing_underscore__:慣例によりPythonキーワードとの競合を回避するために使用されます。

Tkinter.Toplevel(master, class_='ClassName')

_set__を使用すると、セットの組み込み名、つまりsetがシャドウされず、関数呼び出し中に既知の参照が失われます。

それは何も意味しません。これを書いた人はセットを指定する変数名が欲しかったと思いますが、setはPython(セットを作成する))の型なので、アンダースコアを追加しました。

7
Israel Unterman

setがキーワードなので、これを書いた人はそうしました。そのため、問題を解決するために、最後にアンダースコアが追加されました。

0