运算符重载Python自定义类

2024-02-11

假设我想重载一个运算符(假设+现在)对于我创建的一些课程,

class A (object):
    #code here

进而:

a = A()
b = A()

我会做什么来定义:

c = a + b

或类似的规定? (注意:这个问题纯粹是理论上的,我可能会在某个时候使用它,只是目前不会(除非它真的很容易并且我真的需要使用它))

(附:如果可以对其他事情执行此操作,例如and, or, not, str, ETC。)


Since A是二元运算符的第一个操作数,您应该定义A.__add__() https://docs.python.org/2/reference/datamodel.html#object.__add__. If A是第二个操作数,并且无法更改第一个操作数的类,您必须定义A.__radd__() https://docs.python.org/2/reference/datamodel.html#object.__radd__.

魔法方法完整参考 https://docs.python.org/2/reference/datamodel.html

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

运算符重载Python自定义类 的相关文章

  • 如何在Python中读取json文件并以字典形式返回

    尝试读取 json 文件并作为字典返回 def js r filename with open num json r as f in json d f read 如何返回dict函数 Use the json模块对其进行解码 import
  • 在 R 中,如何将整个命令行放入二元运算符的 sys.call() 中?

    我为 R 编写了一个二元运算符函数 即名称类似于 X 这样就不必输入 X a b 我可以使用更方便的语法a X b 我的目标是有一个包装器 lt 它会执行一些操作 例如记录对该环境中的对象所做的操作并检查 受保护 属性 该属性会在覆盖该对象
  • 将文本文件扫描到对象数组中

    我有一个逗号分隔的文本文件 其信 息格式如下 名字 姓氏 餐1 餐2 餐3 餐4 每个新学生都在新的一行 我有以下学生对象 public class Student private String first null private Str
  • 了解 self 和 cls 之间的区别以及它们是否引用相同的属性

    我试图了解两者之间是否存在差异self and cls但我正在挣扎 尽管存在很多关于这个话题的讨论 例如 class maclass A class method def init self self B instance method d
  • python中的“For”循环结构

    当我调试一小段代码时 我注意到一些意想不到的事情 for 循环循环遍历文件名以删除数字 通过查看字符串的每个字符并替换它 似乎打印了文件名 因为它存在于循环的第一遍中并循环遍历这些字母 所以如果像我在代码中所做的那样 对传递给循环的字符串进
  • 多索引上的 pandas dataframe groupby

    我正在使用 Pandas dataframe 来读取 Excel 文件并对其进行一些操作 我有一个包含多行的标题 现在我想按几个列值进行分组 但是我无法找到解决方案 Excel 示例 name address contact info fi
  • 尽管脚本是“纯”Python,但 .py 和 .ipy 文件的 IPython 行为不同(自定义异常处理程序挂钩停止工作)

    我编写了一个异常处理程序 旨在记录所有未捕获的异常 在调用普通 python 异常挂钩之前的代码中 Python 和 iPython 执行此操作的方法略有不同 我发现 iPython 这样做的方法仅在从交互式会话中运行时有效 或者当 使用
  • 如何在sqlite3中创建多个“:memory:”数据库

    我正在尝试使用 sqlite3 创建多个内存数据库 如果可能 对于磁盘数据库 我会这样做 import sqlite3 db1 sqlite3 connect mnt tmp db1 db db2 sqlite3 connect mnt t
  • GAE SDK 1.9.5 和 InvalidCertificateException

    尝试在 osX Maverics 10 9 5 上使用 Python2 7 8 从 GAE SDK 1 95 导入测试床 我收到 InvalidCertificateException 错误 from google appengine ex
  • Python 类中的继承顺序

    我有课ExampleSim它继承自基类Physics class Physics object arg1 arg1 def physics method print physics method class ExampleSim Physi
  • 常量表达式包含无效操作[重复]

    这个问题在这里已经有答案了 我有以下代码 出现错误 PHP 致命错误 常量表达式包含无效操作 当我在构造函数中定义变量时 它工作得很好 我正在使用 Laravel 框架
  • ubuntu 12.10 上使用 https 和 python 2.7 时出现 urlopen 错误 [Errno 110]

    预先感谢您提供的任何帮助 我在 ubuntu 12 10 上安装了 python 2 7 我根据其他帖子编写了一个简单的脚本来测试 http 和 https 连接 import urllib2 urllib def set proxy pr
  • 如何在两个类之间共享数据

    Question 有没有一种方法可以让两个类同时相互继承 背景 我目前正在开发一个 Socket Server 项目 在这个项目中 我有两个课程 一个Server类 以及一个GUI班级 他们的目的是不言自明的 但是 我显然需要让两个班级相互
  • Python 到 exe:py2exe 与 pkg_resources 相关的问题

    我已经用 Python 构建了一个应用程序 我想将其分发到我的企业 但遗憾的是 无法在每台计算机上安装 Python 我想将应用程序转换为 exe 以便用户可以通过桌面上的快捷方式运行我的应用程序 这是我第一次尝试分发 所以请原谅我在这方面
  • PyCharm 调试模式下的键盘中断

    在调试模式下 有什么方法可以在 PyCharm IDE 3 1 中发送键盘中断事件吗 不幸的是 没有简单的方法可以做到这一点 您将需要使用psutil和signal模块 为此 您需要安装psutil最好的方法是通过pip pip insta
  • 安全重载流运算符>>

    有大量关于超载的信息operator lt lt 模仿一个toString style 方法 将复杂对象转换为字符串 我对 感兴趣also实施逆过程 operator gt gt 将字符串反序列化为对象 通过检查STL来源 我收集到 ist
  • 使用 urllib 下载 HTTPS 页面,错误:14077438:SSL 例程:SSL23_GET_SERVER_HELLO:tlsv1 警报内部错误

    我正在使用最新的Kubuntu with Python 2 7 6 我尝试下载一个https使用以下代码的页面 import urllib2 hdr User Agent Mozilla 5 0 X11 Linux x86 64 Apple
  • 磁盘寻道时间测量方法

    我编写了一个脚本来测量 HDD 上的寻道时间 并且其完成方式的微小变化会导致显着不同的时间 第一个周期在磁盘开头的区域内进行跳转 第二个周期选择磁盘上执行查找的随机区域 相同大小 这种方法显然不同 但我不明白为什么它会改变结果 请注意 对于
  • 如何删除Python字符串的最后一个utf8字符

    我有一个包含 utf 8 编码文本的字符串 我需要删除最后一个 utf 8 字符 到目前为止我做到了 msg msg 1 但这只会删除最后一个字节 只要最后一个字符是 ASCII 代码 它就可以工作 当最后一个字符是多字节字符时 它不再起作
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 使用 tastypie 的 REST url

    我在 django 应用程序中使用 tastypie 并尝试让它映射像 api booking 2011 01 01 这样的 URL 该 URL 映射到 URL 中具有指定时间戳的 Booking 模型 该文档没有说明如何实现这一点 您想要
  • 如何在离开用户界面状态时停止 $interval?

    Angular UI 路由器 在状态控制器中使用 interval 如下所示 scope Timer null scope startTimer function scope Timer interval scope Foo 30000 s
  • 使用 cmd.exe /c 相对于根本不使用 cmd 的优点

    如果我在 C 中运行一个进程 使用 cmd c 比直接运行进程有什么好处吗 Ex ProcessStartInfo info new ProcessStartInfo cmd exe info Arguments c application
  • 区分键盘的真实按键和虚拟按键

    我正在用 C 编写一个程序 它必须模拟键盘的按键命令 问题是 我需要模拟 真实 的键盘按钮点击 而不是假的 例如 据我了解 当用户按下键盘上的任何按钮时 信号通过 USB 发送 然后通过键盘驱动程序继续 当使用 API SendInput
  • 将 async/await 与 DataReader 一起使用? (没有中间缓冲区!)

    我的目标很简单 我想做异步 I O 调用 使用 async wait 但是 不使用 DataFlow 依赖项 就像这个答案一样 https stackoverflow com a 13148683 859154 没有中间缓冲区 不喜欢这个答
  • 在 WPF Frame 控件中关闭导航页面声音

    我在 WPF 窗口中有一个 Frame 元素 并且应用程序中的所有内容都是使用 Frame Navigate 加载的 但是 当导航到新页面时 默认会播放该声音 它与 Internet Explorer 中播放的声音相同 有什么方法可以从应用
  • Visual Studio 2015 中的默认日期时间选择器仅显示日期选择器,不允许选择时间

    我正在使用 Visual Studio 2015 并且在我的 MVC5 应用程序中使用其默认日期时间选择器 我在显示日期时间选择器时遇到问题 它仅显示日期选择器而不显示时间选择器 但我也需要时间选择器 这是我在模型中的 datetimepi
  • ValueError:使用 pandas hub_table 不允许使用负尺寸

    我正在尝试制作项目 项目协作推荐代码 我的完整数据集可以找到here https drive google com open id 0B7KsvcvcTJ4DeU1IRE93ZHVnRGM 我希望用户成为行 项目成为列 评级成为值 我的代码
  • .NET 中的串行端口通信

    我正在使用 C 从串行端口接收数据 但存在一些问题 我对此很陌生 所以我需要一些帮助 首先我想知道哪些函数是事件驱动的 ReadExisting Read Readbyte Readchar ReadLine Readto 如何从该端口的输
  • Spark 读取路径/文件名中包含空格的 csv 文件时出错

    我想使用 Spark 读取 csv 文件 文件的路径有空格 Spark 正在将空格替换为 20 这是代码 val tmpDF spark read format com databricks spark csv option multiLi
  • 在 Android 上运行标准 Java 代码

    我想在 Android 上运行我的 Java 代码 但我对活动不熟悉 如何在 Activity 上调用 WordPuzzle 安卓活动 public class Puzzle extends Activity public void onC
  • 我正在尝试创建一个可访问的
  • Spring MVC 与 hibernate Validator 来验证单个基本类型

    下面是我遇到问题的映射方法 无论我传递给它什么值 验证都会返回 通过验证 RequestMapping value test method RequestMethod POST ResponseBody public String getT
  • 网站不同部分使用不同的 SSL 证书

    我在 example com 上有一个网站 它从 s example com 亚马逊 Cloudfront 发行版 加载所有静态组件 现在我想让 example com 的一些页面使用 https 所以我想我应该为 example com
  • 了解 Kafka 主题和分区

    我开始学习卡夫卡 在阅读过程中 我想到了一些问题 当生产者生成消息时 它会指定topic它想要将消息发送到 是对的吗 它关心分区吗 当订阅者运行时 它是否指定其组ID 以便它可以成为同一主题或该组消费者感兴趣的多个主题的消费者集群的一部分
  • 使用 Jquery 将剪贴板图像复制到网页中

    我想将剪贴板图像复制到网页中 前任 用户单击打印屏幕按钮 打开网页 单击 CTRL V 图像将上传到网页 可以使用 jquery javascript 或 PHP 吗 在火狐浏览器中可以吗 提前致谢 恐怕不是 不是 您必须让用户将屏幕截图保
  • 在哪里更改oracle 11g中的NLS_DATE_FORMAT?

    我需要更改存储过程中的 NLS DATE FORMAT 似乎它是一个会话变量 我应该在哪里更改变量掩码 应该在全局声明中还是其他地方完成 我的意思是从前端 如果您想更改过程中的 NLS 参数 则可以使用DBMS SESSION SET NL
  • 元素“标题”出现次数太少,ASP.NET.MVC 母版页中出现 XHTML 验证警告

    我在 ASP NET MVC 母版页中收到以下 XHTML 验证警告 验证 XHTML 1 0 Transitional 元素 title 出现的次数太少 母版页的标题标签包含在 head 标签的 ContentPlaceHolder 中
  • NLTK数据安装问题

    我正在尝试在 Mac OSX 10 9 上安装 NLTK Data NLTK 3 0文档中提到 要设置的下载目录是 usr share nltk data 用于集中安装 但对于这条路径 我收到错误 OSError Errno 13 权限被拒
  • 运算符重载Python自定义类

    假设我想重载一个运算符 假设 现在 对于我创建的一些课程 class A object code here 进而 a A b A 我会做什么来定义 c a b 或类似的规定 注意 这个问题纯粹是理论上的 我可能会在某个时候使用它 只是目前不