当前位置: 首页 > article >正文

PyCharm的类型警告: Expected type ‘SupportsWrite[bytes]‘, got ‘BinaryIO‘ instead

记录时使用的PyCharm版本:
PyCharm 2024.3 (Professional Edition)
Build #PY-243.21565.199, built on November 13, 2024

问题描述

当在PyCharm里使用pickle保存文件, 比如以下代码这样:

    with open(meta_save_path, 'wb') as f:
        pickle.dump(meta, f)

会发现PyCharm对此发出类型警告: Expected type 'SupportsWrite[bytes]', got 'BinaryIO' instead. 如下图这样:

unexpected

解决

放心, 这不是你的问题, 而是专属于PyCharm的锅. 只需要添加# noinspection PyTypeChecker这行注释在警告的代码上即可:

    with open(meta_save_path, 'wb') as f:
        # noinspection PyTypeChecker
        pickle.dump(meta, f)

注: 虽然你也可以使用诸如typing.cast这样的方法来防止PyCharm报错, 但既然这段代码本身没问题, 只是PyCharm自身的误报, 那么这种"改正"也没什么道理.

参考

[1] https://stackoverflow.com/a/79049514/9532112
[2] https://youtrack.jetbrains.com/issue/PY-76404/Spurious-Expected-type-SupportsWritebytes-got-BinaryIO-instead-with-pickle.dump


http://www.kler.cn/a/406193.html

相关文章:

  • PG的并行查询
  • 大数据实战——MapReduce案例实践
  • Unity3D基于ECS的游戏逻辑线程详解
  • 半导体工艺与制造篇5 光刻
  • Swift 数组
  • IDEA2019搭建Springboot项目基于java1.8 解决Spring Initializr无法创建jdk1.8项目 注释乱码
  • 通过IIC访问模块寄存器[ESP--1]
  • springboot图书馆预约与占座小程序
  • RT-DETR融合[TIP2023]DehazeFormer中的SKFusion模块及相关改进思路
  • C++算法练习-day42——98.验证二叉搜索树
  • 31、js中日期操作
  • vulfocus在线靶场:CVE_2019_16662 速通手册
  • 耿恭坚守城池的方法
  • c++11的动态类型
  • 【AIGC】ChatGPT提示词Prompt解析:拒绝的艺术:如何优雅地说“不“
  • 如何为PDF文件创建口令密码
  • 如何在MATLAB中实现图像自动分割
  • C语言基础学习:抽象数据类型(ADT)
  • 远程服务器Docker使用本地代理加速访问外部资源
  • gitlab:使用脚本批量下载项目,实现全项目检索
  • 关于Linux中线程优先级的问题探讨
  • 【Linux】-学习笔记04
  • [ruby on rails] 安装docker
  • 量化交易系统开发-实时行情自动化交易-4.3.1.跨市场套利策略实现
  • JAVA中的Lamda表达式
  • Lua 实现继承的一种方式