0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【基礎確認】pythonのtypingモジュール

Posted at

はじめに

LangChainとLangGraphによるRAG・AIエージェント[実践]入門
を読んでいて、10章で躓いたので、初心に戻って、一つずつ紐解いて学習することにしました。
今回のテーマは「typing」モジュール

前回までの投稿

【基礎確認】pythonのoperatorモジュール

サンプルコード

sample.py
from typing import Annotated, Any, Optional

# Annotatedの使用例
def greet(name: Annotated[str, "ユーザーの名前"]) -> str:
    return f"こんにちは、{name}さん!"

# Anyの使用例
def print_anything(item: Any) -> None:
    print(f"入力された値: {item}")

# Optionalの使用例
def divide(a: float, b: Optional[float] = None) -> float:
    if b is None:
        return a
    return a / b

# 関数の使用
print(greet("太郎"))
print_anything(42)
print_anything("Hello")
print(divide(10, 2))
print(divide(5))

解説

typingモジュールからAnnotated, Any, Optionalをインポート。

  1. Annotated
    型ヒントに追加の情報を付加するために使用する。
    例では、greet関数の引数nameに"ユーザーの名前"という注釈を追加している。

  2. Any
    どのような型でも受け入れることを示す。
    print_anything関数は、任意の型の引数を受け取り、その値を出力する。

  3. Optional
    引数が省略可能であることを示す。
    divide関数では、第二引数bがOptional[float]型で、デフォルト値がNoneに設定されている。

これらの型ヒントを使用することで、コードの可読性が向上し、静的型チェッカーやIDEがより正確な型情報を提供できるようになる。

独り言

正直、個人開発が多かったので、Annotatedとか使う機会がなかったんですよね。
多分、pythonの文法書とかで読んだ記憶はあると思うけど、使用する機会がないから記憶に残っていなかったと。
これを機会に使ってみて、便利さを実感できたら積極的に使うようにしよ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?