在python中定义类时、运算符重载_python自定义类运算符重载
生活随笔
收集整理的這篇文章主要介紹了
在python中定义类时、运算符重载_python自定义类运算符重载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
假設我有一個班級:
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自定义类运算符重载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python aiohttp_aioht
- 下一篇: 代码同步工具_可以多重连接的数据库管理工