提问人:Izaak Cornelis 提问时间:11/7/2023 更新时间:11/7/2023 访问量:113
Python 类型提示 pickable 参数
Python type hint pickable argument
问:
我想与我的代码用户沟通,某些函数需要一个可选取的对象。下面是从任何项目详细信息中抽象出来的示例:
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
答:
1赞
JustLearning
11/7/2023
#1
酸洗保存函数的名称(“标识符”)。取消酸洗需要按名称重新导入函数。为此,需要在顶层定义函数。将一个函数包装在另一个函数中违反了此要求。
我不确定是否有办法对顶级函数进行类型提示。
评论
get_function_signature_hook
。pickle_func