15. 类的内置方法二
1.描述符
1.描述符就是将某种特殊类型的类的实例指派给另一个类的属性,特殊类型的类即实现下面某个或者全部的方法
- 访问属性
__get__(self,instance,owner)
返回属性的值 - 分配属性时调用
__set__(self,instance,value)
无返回值 - 删除时
__delete__(self,instance)
无返回值12345678910111213141516class A:def __get__(self,instance,owner):print('__get__', instance, owner)def __set__(self,instance,value):print('__set__', instance, value)def __delete__(self,instance):print('__delete__', instance)class Test:x = A()t = Test()t.x # __get__ <__main__.Test object at 0x000002B03BE9A550> <class '__main__.Test'>print(t) # <__main__.Test object at 0x000002785C3FA550>print(Test) # <class '__main__.Test'>t.x = 20 # __set__ <__main__.Test object at 0x000002785C3FA550> 20del t.x # __delete__ <__main__.Test object at 0x0000024B0EC0A550>
2.描述符与property(property()函数就是描述符类)
|
|
3.列表生成式
可用range(1,n)生成[1,2,3….n]的列表
4.迭代
通过for循环称为迭代
1.Iterable判断对象是否可迭代对象
|
|
5.生成器generator
可以通过列表生成式生成列表,也可通过生成器generator一边循环一边计算的机制生成列表
1.yield语句
遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行
方法中出现yield则说明这个函数不是普通函数而是一个generator
yield 返回后面的值相当于return