Async Iterators: async for 除了 和`await __iter__ __next__`两个特殊方法实现的,如下例。 1. 迭代器必须支持__iter__方法; 2. 值初始化; 3. 返回一个可迭代对象,这个对象可以执行__next__方法,这里A本身就实现了__next_ ...
分类:
其他好文 时间:
2018-10-22 11:33:52
阅读次数:
152
1. 类; 后面加() 》实例化一个对象,并且执行__init__方法 2. 对象;后面加() 》执行__call__方法 ...
分类:
其他好文 时间:
2018-10-14 19:14:58
阅读次数:
114
面向对象 类(class):实物的模型。 对象:实例化类得到对象。 创建类: 一般方法: 特殊方法:使用type方法: 继承 继承多个类时: 如果子类有构造方法,实例化时执行子类的构造方法; 如果子类没有构造方法,实例化时执行父类的构造方法,按照参数列表从左往右校验父类,如果父类有构造方法则执行,没 ...
分类:
编程语言 时间:
2018-10-14 16:21:56
阅读次数:
125
一、Python解释器碰到特殊句法时,会使用特殊方法去激活一些基本的对象操作,这些特殊方法的名字以两个下划线开头,以两个下划线结尾 - 举例:obj[key]背后就是__getitem__方法 - 没有实现__getitem__方法,无法使用[]获取类中的dict - 实现__getitem__方法 ...
分类:
编程语言 时间:
2018-10-11 23:42:46
阅读次数:
211
单下划线、双下划线、头尾双下划线说明: __foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。 _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import * _ ...
分类:
编程语言 时间:
2018-10-09 00:49:26
阅读次数:
225
``````#静态方法(只是名义上归类管理,但实际上在今天方法里无法访问类或实例中的任何属性)classcat(object):definit(self,name):self.name=name@staticmethod#实际上和类没关系了defeat(self):print("%siseating%s"%(self.name,"food"))c=cat("alex")c.ea
分类:
其他好文 时间:
2018-10-08 11:22:51
阅读次数:
159
增量赋值运算符有 += 和 *=。+= 背后的特殊方法是 __iadd__,如果一个类没有实现 __iadd__ 方法,Python 会退一步调用 __add__ 方法。这两个方法的区别在于,__iadd__ 为就地改动,不会改变原值的内存地址,而 __add__ 方法会得到一个新对象。 ...
分类:
编程语言 时间:
2018-10-05 13:49:51
阅读次数:
181
就是可以给你的类增加魔力的特殊方法,如果你的对象实现 (重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动发生的。 __init__ 构造器,当一个实例被创建的时候初始化的方法。但是它并 不是实例化调用的第一个方法。 __n ...
分类:
编程语言 时间:
2018-10-04 10:37:51
阅读次数:
127
对象表示形式 每门面向对象的语言至少都有一种获取对象的字符串表示形式的标准方式。Python 提供了两种方式。repr() 以便于开发者理解的方式返回对象的字符串表示形式。str() 以便于用户理解的方式返回对象的字符串表示形式。正如你所知,我们要实现 __repr__ 和 __str__ 特殊方法 ...
分类:
编程语言 时间:
2018-09-28 12:54:05
阅读次数:
191
在Python中,所有以__双下划线包起来的方法,都统称为"魔术方法"。比如我们接触最多的__init__,魔法方法也就是具有特殊功能的方法。 构造函数 构造函数不同于普通方法,将在对象创建后自动调用它们。也就是在对象创建完成后,自动会调用__init__方法来初始化。 创建一个构造方法 构造方法传 ...
分类:
编程语言 时间:
2018-09-18 00:24:35
阅读次数:
197