Python 2.6 中已弃用 BaseException.message

2024-04-02

当我使用以下用户定义的异常时,我收到一条警告,指出 BaseException.message 在 Python 2.6 中已弃用:

class MyException(Exception):

    def __init__(self, message):
        self.message = message

    def __str__(self):
        return repr(self.message)

这是警告:

DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
self.message = message

这有什么问题吗?我需要更改什么才能消除弃用警告?


解决方案 - 几乎不需要编码

只需继承你的异常类Exception并将消息作为第一个参数传递给构造函数

Example:

class MyException(Exception):
    """My documentation"""

try:
    raise MyException('my detailed description')
except MyException as my:
    print my # outputs 'my detailed description'

您可以使用str(my)或(不太优雅)my.args[0]访问自定义消息。

背景

在较新版本的 Python(从 2.6 开始)中,我们应该从 Exception 继承自定义异常类(从Python 2.5开始 http://docs.python.org/library/exceptions.html#exceptions.Exception) 继承自 BaseException。背景详细描述在PEP 352 http://www.python.org/dev/peps/pep-0352/.

class BaseException(object):

    """Superclass representing the base of the exception hierarchy.
    Provides an 'args' attribute that contains all arguments passed
    to the constructor.  Suggested practice, though, is that only a
    single string argument be passed to the constructor."""

__str__ and __repr__已经以有意义的方式实施, 特别是对于只有一个参数(可以用作消息)的情况。

您无需重复__str__ or __init__实施或创建_get_message正如其他人所建议的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 2.6 中已弃用 BaseException.message 的相关文章

随机推荐

  • 如何将 Windows 身份验证与 SQL Server docker 容器一起使用

    我已经浏览了我可以在网上找到的用于构建基于 docker 容器的应用程序的所有示例 我想在两个 docker 容器中运行两个服务 运行 ASP NET 的 Windows 容器 运行 SQL Server 的 Windows 容器 简单的工
  • 在 Firefox 中单击“后退”按钮,在访问时重新加载页面

    我有一个页面 它可以将整个身体从观看者的屏幕上动画出来作为过渡 它工作正常 但是当用户单击浏览器中的后退按钮时 Firefox 会从历史记录中调出没有正文的缓存页面 因此 当我通过后退按钮访问时重新加载页面对我来说非常简单 我尝试了以下代码
  • 我将把“Public static void main(String[] args)”放在哪里?

    几天前我开始编写java代码 我制作了一些成功的程序 但我坚持这个 无论我在哪里编写 Public static void main String args 代码 我都会收到错误 大多数时候它告诉我 是期待 我知道把 该代码前面是错误的 有
  • 如何修复“导入错误:无法导入名称 IncompleteRead”?

    当我尝试安装任何东西时pip or pip3 I get sudo pip3 install python3 tk Traceback most recent call last File usr bin pip3 line 9 in
  • Asp.net - MVC1 与 MVC2

    任何人都可以准确解释 ASP NET MVC1 与 MVC2 之间的区别 如果我在 MVC1 中有一个项目 我如何将其迁移到 MVC2 MVC 2 是同一库的更高版本 要升级到它 请阅读这一页 http www asp net learn
  • RecyclerView 预测项目动画不起作用(出现)

    我有一个带有 GridLayoutManager 的 RecyclerView 支持 lib v7 我更新适配器并进行notifyItemMoved 如果项目源位置在屏幕上并且目标位置也在屏幕上 则播放 移动动画 如果该项目位于屏幕外的位置
  • ArgumentNullException - 获取 AzureService

    我正在尝试使用 Windows Azure PowerShell 模块来管理订阅 我已经下载了我的证书 publishsettings 文件 并将其导入Import AzurePublishSettingsFile然后我选择了我的订阅Sel
  • 如何获取通过输入框输入的城市/国家的经度和纬度?

    我有这个代码
  • 如何在反应选择上进行for循环?

    我使用react select创建一个选择选项安装与使用 https github com JedWatson react select示例代码 有一个数组对象来存储如下选项 const options value chocolate la
  • 如何在 R 中将所有行合并为一行? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个有 100 行和 10 列的数据框 我想知道如何将所有 100 行合并为一行 谢谢 mydata seq 1 1000 mydata
  • 如何在 DocPad 中缩小 HTML、CSS 和 JavaScript 文件?

    我想在点击时缩小 HTML CSS 和 JavaScript 文件docpad generate 我怎样才能做到这一点 有几种方法可以解决这个问题 最突出 最直接的方法就是修改你的文档垫配置文件 http bevry me docpad c
  • iPad 上的 YouTube 嵌入代码

    我正在努力通过添加 iPad 支持来改善网站的体验 这包括对视频的支持 我们的客户正在推动一种用于存储和提供视频的 YouTube 模型 这对我们来说太棒了 我原本计划使用 YouTube 新的 HTML5 支持来实现片段 这将设备检测任务
  • C++:计算游戏中的总帧数

    不是一个很好的标题 但我不知道该起什么名字 无论如何 我正在计算游戏中的总帧数 这样我就可以计算平均 FPS long int 万一游戏持续很长时间 我该怎么做才能确保我的long int不会增加超过其限制吗 如果超过极限会发生什么 Tha
  • 以不同数组长度绘制来自 pandas 数据帧的 3D 光谱数据

    是否有可能得到类似的东西这个情节 https www researchgate net figure 7662272 fig1 Figure 4 3D overlay zoom plot of mass spectra of a serum
  • glUseProgram(0) 的作用是什么?

    OpenGL 文档为glUseProgram https www khronos org registry OpenGL Refpages gl4 html glUseProgram xhtml声称用参数调用它zero将导致着色器执行的结果
  • SwitchPreference默认颜色

    我正在开发的应用程序我已将主色 深色 强调色设置为我想要的颜色 并且它们出现在正确的位置 如预期 我有一个我正在使用的偏好活动 我希望该活动的颜色preferenceswitch我正在使用的 会以强调色呈现 相反 它们以材质青色呈现 我想知
  • 为什么 JUnit 5 默认访问修饰符更改为 package-private

    为什么 JUnit 5 中的默认访问修饰符是包私有的 JUnit 4 中的测试必须是公开的 改成package private有什么好处 为什么 JUnit 5 中的默认访问修饰符是包私有的 这不是 默认 从技术上讲 没有默认值 相反 在
  • 使用 JavaScript 动态设置推文按钮“数据文本”内容,或者..?

    下面是一个显示推文按钮的表单上的功能代码 该按钮位于显示多个图像的表单上 当用户单击其中一个图像时 它会成为 选定 图像 并且推文按钮应该发布推文所选图像的名称和网址 a href https twitter com share class
  • Python 和 PyGame 错误代码 134:无法找出原因

    每次我在 Windows 上运行代码时它都会工作 我已经使用 Homebrew 在 Mac 上安装了 pygame 但相同的程序无法运行 其他程序可以在 Mac 上使用 pygame 运行 但我的不行 这是我得到的错误 2015 01 17
  • Python 2.6 中已弃用 BaseException.message

    当我使用以下用户定义的异常时 我收到一条警告 指出 BaseException message 在 Python 2 6 中已弃用 class MyException Exception def init self message self