Pythonは多くの機能を備えた優れたプログラミング言語です。ここでは、あまり知られていないけれど非常に役立つ機能を紹介します。

1. オブジェクトのアドレスを取得する

Pythonのオブジェクトには、メモリ上のアドレスが割り当てられています。オブジェクトのアドレスを知りたい場合は、id()関数を使うことができます。

a = 10
print(id(a))  # 140734561452720

2. 関数の引数にデフォルト値を設定する

関数を定義する際、引数にデフォルト値を設定することができます。引数にデフォルト値が設定されている場合、引数が省略された場合にそのデフォルト値が使用されます。

def greet(name, greeting="Hello"):
    print(greeting, name)

greet("Alice")  # Hello Alice
greet("Bob", "Hi")  # Hi Bob

3. 複数の値を返す

Pythonの関数は、複数の値を返すことができます。これを実現するためには、return文に複数の値をカンマで区切って記述します。

def get_circle_info(radius):
    circumference = 2 * 3.14 * radius
    area = 3.14 * radius ** 2
    return circumference, area

circ, area = get_circle_info(2)
print("Circumference:", circ)  # Circumference: 12.56
print("Area:", area)  # Area: 12.56

4. ジェネレータを使ってメモリを節約する

ジェネレータは、メモリを節約しながらシーケンスを生成するための機能です。ジェネレータは、イテレータを生成するための関数であり、yield文を使って値を返します。

def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

fib = fibonacci()
for i in range(10):
    print(next(fib))  # 0 1 1 2 3 5 8 13 21 34

5. 関数の引数にキーワードを使う

Pythonでは、引数にキーワードを使って、関数の呼び出し時にわかりやすく指定することができます。キーワード引数を使うと、引数の順序を気にする必要が なくなり、引数の意味を明確にすることができます。

def greet(name, greeting="Hello", punctuation="."):
    print(greeting, name, punctuation)

greet("Alice")  # Hello Alice .
greet("Bob", greeting="Hi")  # Hi Bob .
greet("Charlie", punctuation="!")  # Hello Charlie !

6. ディクショナリの要素を扱う際にget()を使う

ディクショナリにあるキーの値を取得する際に、dict[key]を使うことができます。ただし、キーが存在しない場合にはエラーが発生してしまいます。そこで、キーが存在しない場合にはget()メソッドを使うことで、エラーを回避することができます。

fruits = {"apple": 100, "banana": 200, "orange": 150}
print(fruits.get("apple", 0))  # 100
print(fruits.get("melon", 0))  # 0

7. with文を使ってファイルを扱う

ファイルを開いたら、最後に必ずclose()を呼び出す必要があります。しかし、with文を使うことで、自動的にclose()が呼び出されるようにすることができます。

with open("file.txt", "r") as f:
    print(f.read())

8. __main__を使ってモジュールをテストする

Pythonでは、スクリプトファイルとして実行される場合と、モジュールとして他のファイルからimportされる場合で動作を変えたい場合があります。このような場合に、if __name__ == "__main__":を使うことで、スクリプトファイルとして実行される場合だけ実行するコードを記述することができます。

def add(x, y):
    return x + y

if __name__ == "__main__":
    print(add(2, 3))  # 5

これらの機能を使うことで、より効率的で使いやすいPythonコードを書くことができます。是非活用してみてください。