Python 类型提示可选参数

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

我想告诉我的代码的用户,某些函数需要一个可选取的对象。这是一个从任何项目细节中抽象出来的示例:

import pickle
from typing import Callable


def pickable():
    print("I am pickable!")


def get_non_pickable():
    # local functions are not pickable
    def not_pickable():
        print("I am NOT pickable!")

    return not_pickable


def pickle_func(func: Callable[[], None]):
    with open("data.pickle", "wb") as f:
        pickle.dump(func, f, pickle.HIGHEST_PROTOCOL)


# fine:
pickle_func(pickable)

# not fine: should show in my editor that I am passing a non-pickable item
pickle_func(get_non_pickable())

是否可以输入提示,函数

func
中的函数参数
pickle_func
必须是可选择的?理想情况下,应保留参数的现有类型提示。

python pickle type-hinting
1个回答
0
投票

Pickling 保存函数的名称(“标识符”)。取消酸洗需要按名称重新导入函数。为了使其发挥作用,需要在顶层定义该函数。将一个函数包装在另一个函数中违反了这一要求。

我不确定是否有办法输入提示顶级函数。

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