我有一个函数参数,可以接受几种图像类型:
;(async () => { // Declaration to make the code async
for(let i = 0; i < 10; i++){
await new Promise(resolve => setTimeout(function(){
console.log("hello " + i);
resolve();
}, 500));
}
console.log("Bye bye");
})();
在这种情况下,PIL def somefunc(img: Union[np.array, Image, Path, str]):
引发以下异常:
Image
进一步检查图像对象后,这是有道理的:
TypeError: Union[arg, ...]: each arg must be a type. Got <module 'PIL.Image' from ...
如何为PIL图像指定通用类型?它来自文件,格式无关。
答案 0 :(得分:0)
我没有方便的IDE,但您遇到的错误是:
. . . Got <module 'PIL.Image'
当您要引用模块中包含的Image
对象时,建议您尝试将模块本身用作类型。
我猜你有个进口商品
from PIL import Image
哪个使Image
引用模块,而不是对象。
您想要类似的东西
from PIL.Image import Image
以便导入对象本身。
不过请注意,现在Image
引用了该对象。如果要同时引用同一文件中的对象和模块,则可能需要执行以下操作:
from PIL import Image as img
from PIL.Image import Image
现在,该模块的别名为img
。