PyCharm中pickle报Expected type 'SupportsWrite[bytes]'警告如何解决?
消除PyCharm中pickle.dump的类型警告方法
PyCharm的类型检查器在这里出现了误判——BinaryIO实际上完全符合SupportsWrite[bytes]的接口要求,你的代码本身是合法且可正常运行的。以下是几种针对性消除警告的方法:
添加类型注解明确类型
给文件对象加上SupportsWrite[bytes]的类型注解,直接告知PyCharm该对象的类型符合要求:import pickle from typing import SupportsWrite fruits = ['apples', 'oranges', 'banana'] with open('myData.pkl', 'wb') as f: f: SupportsWrite[bytes] = f pickle.dump(fruits, f)单行忽略类型检查警告
在触发警告的代码行末尾添加PyCharm专属的忽略注释,仅屏蔽这一行的类型检查警告:import pickle fruits = ['apples', 'oranges', 'banana'] with open('myData.pkl', 'wb') as f: pickle.dump(fruits, f) # noinspection PyTypeChecker调整全局类型检查严格度(不推荐)
打开PyCharm设置(File > Settings),进入Editor > Inspections > Python > Type checker,降低检查的严格等级,或者关闭“Type mismatch”检查项。这种方法会影响整个项目的类型检查,仅建议在有全局调整需求时使用。
内容的提问来源于stack exchange,提问作者RonLat
相关产品推荐
相关产品推荐

