如何解决mypy 错误:模块没有属性“__path__”
我正在尝试正确注释在 python 包上运行的函数中的类型。根据经验,我知道包具有 __path__
属性。在运行时,包(带有 __init__.py
的文件夹)和模块(.py 文件)的类型都是 <class 'module'>
,可以用 types.ModuleType
注释;但是模块没有 __path__
属性。
使用内置函数的演示:
import asyncio
import turtle
print(type(asyncio)) # <class 'module'>
print(type(turtle)) # <class 'module'>
print(asyncio.__path__) # [.../lib/python3.7/asyncio']
print(turtle.__path__) # AttributeError: module 'turtle' has no attribute '__path__'
Package 的类型是什么以及如何对其进行注释?
示例代码:
import types
def foo(x: types.ModuleType) -> str:
return x.__path__
使用 error: Module has no attribute "__path__"
检查 mypy 时失败。我应该使用哪种类型来表示只应将包而不是模块传递给我的函数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。