摘要:
__doc__ 类名.__doc__时触发执行,查看类的注释信息,注释信息无法继承。 class Person: """ 该类注释信息 """ print(Person.__doc__) 该类注释信息 直接写注释信息相当于定义了个__doc__ = """该类的注释信息""",所以可以不用写pass 阅读全文
摘要:
以下方法统称为富比较方法: __eq__(self, other) 使用==比较两个对象时会触发内部代码执行。 class A: def __eq__(self, other): print('触发A内方法的执行') if self.name == other.name: # 自己定制比较规则。 r 阅读全文
摘要:
__len__(self) 内置函数len(obj)的原理就是触发对象所属类的__len__方法,该方法返回值必须为整型,len()拿到的就是该方法的返回值。 class F: def __len__(self): # 返回对象的属性数量 return len(self.__dict__) f = 阅读全文
摘要:
__enter__(self)和__exit__(self, exc_type, exc_val, exc_tb) with语句也叫做上下文管理协议,为了让一个对象兼容with语句,必须在这个对象的类中声明enter和exit方法。 with 对象会触发类的__enter__执行,enter的返回值 阅读全文
摘要:
__iter__(self)和__next__(self) Python中for循环的原理就是调用可迭代对象的__iter__方法得到迭代器对象,然后调用__next__方法进行取值,直到对象抛出StopIteration异常。某些语言例如go,即支持迭代循环,也支持索引循环。 自定义一个可迭代对象 阅读全文
摘要:
__str__(self) 打印对象时print(obj)时会触发__str__的执行。 class A: def __str__(self): return 'str执行了' def __repr__(self): return 'repr执行了' a = A() print(a) str执行了 阅读全文
摘要:
__call__(self,*args,**kwargs) 对象加括号obj()会触发所属类的__call__的执行。Python中一切皆对象,类加括号实例化对象时也会触发元类的__call__。 class Car: def __call__(self, *args, **kwargs): pri 阅读全文