假设我有一个班级:

class Cat:

def __init__(self, name = "default", age = 0):

self.name = name

self.age = age

我还有一个猫列表:

l = [Cat('Joe')]

现在我不能打电话给以下人员:

if 'Joe' in l: # the right syntax would be if Cat('Joe') in list

我需要重载哪个运算符才能通过其成员变量名识别类Cat的对象?

您必须定义__eq__方法,如下所示:

class Cat:

def __init__(self, name = "default", age = 0):

self.name = name

self.age = age

def __eq__(self, other):

if isinstance(other, str):

return self.name == other

elif isinstance(other, Cat):

return self.name == other.name

这样当你运行支票时:

l = [Cat('Joe')]

'Joe' in l

#True

在python中定义类时、运算符重载_python自定义类运算符重载相关推荐

  1. python中表示类的公有成员_在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员。...

    在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员. 更多相关问题 [填空题] 汽车板金的一般修理工艺是:校正.敲平.().().焊接及点焊. [填空题] 汽车照明系统主要由() ...

  2. python中定义函数常用关键字_Python 中定义函数的关键字是 _________________ 。_学小易找答案...

    [其它]实验4-串和数组-实验任务书.docx [填空题]表达式 'abc' in ['abcdefg'] 的值为______________. [填空题]已知 x = range(1,4) 和 y ...

  3. 在python中定义类时、运算符重载_自定义 Python 类中的运算符和函数重载(上)...

    如果你对 Python 中的str对象使用过 + 或 * 运算符,你一定注意到了它的操作与 int 或 float 类型的区别: 你可能想知道同一内置运算符或函数如何对不同类对象进行不同操作的.这分别 ...

  4. python中定义元组的符号_python中得元组和字符串详解,有这么一篇文章就够了

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:咸鱼学Python ( 想要学习Python?Pyth ...

  5. 在python中定义类时实例方法的第一个参数名称_第7.5节 揭开Python类中self的面纱...

    在上节已经引入介绍了类定义,并简单介绍了类变量.实例变量.类方法和实例方法,后面章节还会进一步详细介绍相关的内容.本节要介绍的self是与类变量.实例变量.类方法和实例方法具体定义实现强相关的. 一. ...

  6. python中定义变量和数组_Python中的线程和全局变量 - 数组和标准变量之间的区别?...

    我目前尝试使用线程编写一个更大的python程序,并遇到了数组不必被声明为全局的问题.Python中的线程和全局变量 - 数组和标准变量之间的区别? import numpy as np import ...

  7. python中定义元组的符号_python 3 基础之元组tuple,详解

    元组 元组不可改变,只要定义完成,就已经决定数值,即不可再改变,一般用来保存一些不会改变的数据:与列表类似,列表用中括号而元组用小括号,元组不可改变而列表可以. tuple和list非常类似,但是tu ...

  8. python计算复数的辐角_Python 自定义类中的函数和运算符重载

    如果你曾在字符串(str)对象上进行过 + 或 * 运算,你一定注意到它跟整数或浮点数对象的行为差异: >>> # 加法 >>> 1 + 2 3 >>& ...

  9. python中定义数据结构_Python中的数据结构—简介

    python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...

最新文章

  1. 语音信号处理_书单 | 语音研究进阶指南
  2. 给初学者们讲解人工神经网络(ANN)
  3. 注意| .NET开发者大会防疫须知 !
  4. CF 1638 E. Colorful Operations set 区间平推
  5. matlab读取data格式,ReadData3D 各种格式图像的读取,包括医学 效果很好 matlab 272万源代码下载- www.pudn.com...
  6. 高频面试题3 类初始化过程与实例初始化
  7. Python3练习题系列(03)
  8. linux下各种后缀名文件的压缩和解压缩
  9. 服务器开启谷歌BBR加速网络
  10. python的sdk是什么意思_python sdk是什么
  11. Windows10系统变成英文如何切换回中文,Ctrl+Shift无法切换输入法
  12. UR5双臂Gazebo仿真(Python)
  13. html 设置响应X-frame,X-Frame-Options(点击劫持)漏洞分析及web配置修复
  14. [转载]计算机科学与技术学生学习基础材料参考
  15. 【Python 打开文件夹】——两种打开文件夹的方法
  16. MATLAB系统辨识工具箱介绍(完结)
  17. 用L298驱动直流减速电机
  18. 比较Windows10各个版本区别
  19. Java 时间与日期处理
  20. 视频配音怎么制作?教你手机怎么给视频配音

热门文章

  1. Nginx:作为缓存,支持Range回源
  2. ./ffmpeg: error while loading shared libraries: libavdevice.so.57
  3. 一张图看懂小程序全生态
  4. springsession使用redis
  5. Lua基础之math(数学函数库)
  6. java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing
  7. leetcode 382. Linked List Random Node | 382. 链表随机节点(Java)
  8. leetcode 322. Coin Change | 322. 零钱兑换(动态规划)
  9. leetcode 557. 反转字符串中的单词 III(Java版)
  10. 看动画学算法之:排序-归并排序