\

Pythonでは、アンダースコア _ は特殊な意味を持つことがあります。これは変数や関数の命名において重要な役割を果たします。

アンダースコアの位置と意味

Pythonでは、アンダースコア _ の位置によってその意味が変わります。

  • アンダースコアのみ _: 必要のない値 (または一時的な変数)の代入先として使用されます。
  • 先頭に1つのアンダースコア _foo: クラス内でのみで参照・使用されるものを示します。
  • 末尾に1つのアンダースコア foo_: 利用したい変数名がPythonの予約キーワードと同じ場合に、名前が衝突することを避けます。
  • 先頭に2つのアンダースコア __foo: クラスの変数やメソッドに対してネームマングリング (Name Mangling)が適用されます。
  • 先頭と末尾に2つずつのアンダースコア __foo__: Pythonの特殊メソッドを示します。
  • 途中に1つ以上のアンダースコア foo_bar_baz, 10_000_000: 数字や文字を読みやすくするために使用されます。

アンダースコアの使用例

以下に、それぞれのアンダースコアの使用例を示します。

# アンダースコアのみ
for _ in range(47):
    print('Hello, world')

# 先頭に1つのアンダースコア
class Test:
    def __init__(self):
        self._foo = 0

# 末尾に1つのアンダースコア
def foo(class_):
    print(class_)

# 先頭に2つのアンダースコア
class Test():
    def __init__(self, name):
        self.__name = name

# 先頭と末尾に2つずつのアンダースコア
class Test():
    def __init__(self):
        pass

    def __str__(self):
        return "This is a test class"

# 途中に1つ以上のアンダースコア
foo_bar_baz = 10_000_000

これらのアンダースコアの使用法を理解することで、Pythonのコードをより効果的に書くことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です