当所需类型来自另一个库时使用类型提示的最快方法

问题描述 投票:0回答:1

我正在开发一个支持 Python 3.10+ 的库,在很多情况下,我发现自己导入库只是因为我需要一个用于类型提示的类。

这很常见,例如:

import pandas as pd

# Prev code where `pd` is never used

def myfunc() -> pd.DataFrame:
    # Definition of my func where `pd` is never used

# Rest of code where `pd` is never used

我想实现使用类型提示的方法来最大程度地减少通过导入库和/或类而增加的运行时开销。

我正在考虑接下来的选择:

  1. 在各处添加
    from __future__ import annotations
    并且不添加导入。
  2. 在我的库中创建一个
    types
    模块,导入我将用于类型提示的特定类,例如
    from pandas import DataFrame as pandasDF
    ,然后在需要时使用此模块。
  3. 导入特定类
    from pandas import DataFrame
    ,我将在其中使用类型提示。
  4. 只需接受我需要导入模块或类。这就是开头所示的模式。

问题是:设置用于类型提示的类的最优化方法是什么(就添加的额外运行时间而言)?

我当前正在导入包含所需类的模块。

python python-typing
1个回答
0
投票

实际上有一个内置功能:typing.TYPE_CHECKING

这只是一个布尔值,在类型检查时为 True,在运行时为 False。如果您的导入仅在类型检查时需要,您可以说:

import typing

if typing.TYPE_CHECKING:
    import pandas as pd

def myfunc() -> pd.DataFrame:
    pass

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.