本文主要是介绍python __iter__, __call__, __enter__, __exit__,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
__iter__
iter(object[, sentinel])
object 是支持迭代对象的集合,,且支持迭代协议(iteration protocol)或者支持序列协议(sequence protocol)
sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。
for i in iter(列表or集合):print(i)
__call__
当一个类实现了特殊方法__call__
,该类的实例就变成了可调用的类型, 对象名() 等价于 对象名.__call__()
,有时候可以简化对象的调用,让对象变成可调用的对象, 实现__call__即可.
__enter__和__next__
支持上下文管理器协议。上下文管理器就是支持上下文管理器协议的对象,它是为了with而生。当with语句在开始运行时,会在上下文管理器对象上调用 __enter__ 方法。with语句运行结束后,会在上下文管理器对象上调用 __exit__ 方法
这篇关于python __iter__, __call__, __enter__, __exit__的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!