摘要:
十五. __len__ 计算对象的长度, return 是多少, len([对象]) 的结果就是多少 触发条件 : 使用 len([对象]) 时触发, 返回值必须为整数 🐞"return"多少就是多少 class Person: def __len__(self): return 11111 # 阅读全文
摘要:
补充链式调用知识 链式调用是设计程序的模式, 在Java 和 js 中被广泛应用 链式调用格式 : A.方法.方法.方法.方法 优势和好处 : 代码量大大减少, 逻辑集中清晰明了, 且易于查看和修改 class Person: def __init__(self,name,age,sex): sel 阅读全文
摘要:
十四. __iter__ 和 __next__ 前面迭代器那一章节我们讲解了可迭代对象和迭代器对象的特点以及 For 循环的原理 : 可迭代对象 (iterable) : 在python中,但凡内置有 __iter__方法的对象,都是可迭代的对象 迭代器对象 (iterator) : 内置有__ne 阅读全文
摘要:
十三. __all__ 前面模块介绍章节其实已经介绍过了 __all__ 的使用, 它用来在使用 from [模块名] import * 的时候, 针对这个 * 来限制能够使用的属性 🐞文件 "test.py" 内容 __all__ = ["Foo","Bar"] # 如此只能使用 Foo,Bar 阅读全文
摘要:
十二. __slots__ 和 __dict__ 1.__slots__ 默认我们可以给class实例绑定任何属性和方法,这就是动态语言的灵活性如果我们想要限制class的属性怎么办?比如,只允许对Persion实例添加name和age属性。为了达到限制的目的,Python允许在定义class的时候 阅读全文
摘要:
十一. __module__ 和 __class__ 1.__module__ 可以查看当前操作的对象在哪个模块 🐞文件 "test.py" 内容 class Foo: def __init__(self,name): self.name = name 🐞当前执行文件内容 from test i 阅读全文
摘要:
十. __str__ 和 __repr__ 1.__str__ 触发条件 : print([对象]) 的时候触发 __str__ 的执行 class Person: def __init__(self,name): self.name = name def __str__(self): print( 阅读全文
摘要:
九. __init__ 和 __new__ 1.先看代码 : class Person: def __init__(self,name): print("触发__init__") self.name = name def __new__(cls, *args, **kwargs): print("触 阅读全文
摘要:
八. __call__ 触发条件 : [对象] + ( ) 就触发 __call__ 的执行 class Person: def __init__(self,name): self.name = name def __call__(self, *args, **kwargs): print(args 阅读全文