Loading

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