Jika saya membuat kelas saya sendiri dengan Python, fungsi apa yang harus saya definisikan sehingga memungkinkan penggunaan operator 'in', misalnya
class MyClass(object):
...
m = MyClass()
if 54 in m:
...
python
operator-overloading
operators
in-operator
astrofrog
sumber
sumber
is
danis not
operator. Sepertiquery = tinydb.Query().field == value
, juga bisa menulisQuery().field is not None
. Tapi sepertinya saya pergi dengan__eq__
dan__ne__
untuk saat ini, yang mengarah ke unpythonicQuery().field != None
. (sarc)Jawaban:
MyClass.__contains__(self, item)
sumber
Jawaban yang lebih lengkap adalah:
Di sini Anda akan mendapatkan Benar ketika menanyakan apakah 54 berada di m:
Lihat dokumentasi tentang kelebihan muatan
__contains__
.sumber
Anda mungkin juga ingin melihat kerangka timpa operator infiks yang dapat saya gunakan untuk membuat bahasa khusus domain:
http://code.activestate.com/recipes/384122/
sumber