Python3.13の新機能 Python 3.13の新機能(その3)PEP 702: 型システムを利用したDeprecate(廃止予定)の指定

PEP 703: フリースレッドモードPEP 696: 型パラメータのデフォルト型PEP 702: 型システムを利用したDeprecate(廃止予定)の指定PEP 705: TypeDict: 読み取り専用アイテム

PEP 702: 型システムを利用した非推奨の指定

従来のPythonでは、Deprecate(廃止予定)のAPIを警告するために、次のように DeprecationWarning を使っていました。

import warnings

def func():
    warnings.warn("deprecated", DeprecationWarning)
    return 0

しかし、この方法では実行するまで警告が表示されないため、警告を見逃されることがありました。

そこで、PEP 702では、@warnings.deprecated デコレータを使って、型ヒントを使って廃止予定のAPIを警告する方法が追加されました。型ヒントによる警告であれば静的な検査で検出できるため、VS Code などのエディタなどでも警告が表示できるようになるでしょう。

from warnings import deprecated

@deprecated("deprecated_func() is deprecated")
def func() -> int:
    return 0

func() を呼び出すと、warnings.warn() と同じように警告が表示されます。

近い将来には mypy などの型チェッカーでも警告を検出できるようになる予定ですが、2025年1月現在ではまだリリースされていないようです。

Copyright © 2001-2023 python.jp Privacy Policy python_japan
Amazon.co.jpアソシエイト
Amazonで他のPython書籍を検索