曹耘豪的博客

定制 Python 的类

  1. def __iter__(self)
  2. def __next__(self)
  3. def __contains__(self, item)
  4. def __bool__(self)

假设类++实例++为my_class,即my_class = MyClass()

def __iter__(self)

itor()调用,返回类的迭代器版本用于迭代, 通常使用于for语句等

def __next__(self)

获取下一个元素

在作为迭代器时的iterable接口,若无则会报错

TypeError: 'xx' object is not iterable

在与for语句联合使用时,同时要实现def __iter__(self)以返回迭代器

1
2
for item in my_class:
# do something
def __contains__(self, item)

返回TrueFalse: 是否存在item

使用方法

1
2
if item in my_class:
# do something
def __bool__(self)

返回返回实体类的布尔属性TrueFalse

1
2
3
4
if my_class:
print('True')
else:
print('False')
   /