最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python专用方法与迭代机制实例分析

来源:懂视网 责编:小采 时间:2020-11-27 14:31:00
文档

Python专用方法与迭代机制实例分析

Python专用方法与迭代机制实例分析:本文实例讲述了Python专用方法与迭代机制,分享给大家供大家参考之用。具体分析如下: 众所周知,Python 设计哲学是优雅、明确、简单,对于一件事只用一种最好的方法来做,而这种优雅在于背后很自然的隐藏了很多细节。比如对一些对象直接用for
推荐度:
导读Python专用方法与迭代机制实例分析:本文实例讲述了Python专用方法与迭代机制,分享给大家供大家参考之用。具体分析如下: 众所周知,Python 设计哲学是优雅、明确、简单,对于一件事只用一种最好的方法来做,而这种优雅在于背后很自然的隐藏了很多细节。比如对一些对象直接用for

本文实例讲述了Python专用方法与迭代机制,分享给大家供大家参考之用。具体分析如下:

众所周知,Python 设计哲学是“优雅”、“明确”、“简单”,对于一件事只用一种最好的方法来做,而这种优雅在于背后很自然的隐藏了很多细节。比如对一些对象直接用for 语句来迭代,一些全局函数可以作用于很多具有共同特征的对象,还有生成器装饰器自省等特性。其中很多实现都是借助 Python 内部专用方法,而对外则使用统一的全局函数来进行操作,在配合一些语法糖,使得 Python 写起来愈发的方便,符合人的直觉。

Python 专用方法

类的私有方法:以双线划线开头,但是不以双下划线结尾的方法;
类的专有方法:以双下划线开头和结尾,常用来被内建函数调用;
模块私有对象:以单下划线开头,不能被导入到其他的模块中去;

#!/usr/bin/env python 
# Python3 实现 
_modeluprivate = '本模块私有' #不能用 from module import * 导入 
 
class People(): 
 def __myprivate(self): 
 print("This is a private fun") 
 def __test__(self): 
 print('call __private: ',end='') 
 self.__myprivate() 
 
if __name__ == '__main__': 
 a = People() 
 a.__test__() # 专有方法,一般系统专用,自己的类方法不要用这种新式命名 
 a._People__myprivate() # 私有方法被对外被翻译成了这种名字,从而达到私有的效果 
 print(_modeluprivate) 
 
''''' 
输出 call __private: This is a private fun This is a private fun 本模块私有 '''

Python 迭代机制

Python 中的可迭代对象是实现了 __iter__() 方法的对象,而 __iter__() 方法返回一个迭代器对象,迭代器对象内部要实现 __next__() 方法。迭代器对外提供了一个统一的遍历集合的接口,并且可以直接用 for 语句来进行操作,非常的方便。对于一些特别大甚至无限的集合,迭代器避免了一次性将数据集载入,几乎是唯一的访问方法。

#!/usr/bin/env python 
# Python3 实现 
class IterTest(): 
 def __init__(self): 
 self.a = 0 
 def __iter__(self): 
 return self 
 def __next__(self): 
 self.a += 1 
 if self.a > 3: 
 raise StopIteration 
 return self.a 
 
if __name__ == '__main__': 
 a = IterTest() 
 for i in a: 
 print(i,end=' ') 
 b = IterTest() 
 print(list(b)) # list()构造器,可以接受可迭代对象 
 c = IterTest() 
 print(next(c), next(c), next(c)) 
 
''''' 
输出 1 2 3 [1, 2, 3] 1 2 3 '''

Python 的生成器其实返回的也是一个迭代器,同样可以对其使用 next() 函数,对其使用 for操作,有了 yield 关键字使得创建生成器更加的方便。

#!/usr/bin/env python 
# Python3 实现 
def funGenerate(): 
 yield 1 
 yield 2 
 yield 3 
 
if __name__ == '__main__': 
 a = funGenerate() 
 for i in a: 
 print(i, end=' ') 
 b = funGenerate() 
 print(next(b),next(b),next(b)) 
 
''''' 
输出 1 2 3 1 2 3 '''

希望本文所述对大家Python程序设计的学习有所帮助。

文档

Python专用方法与迭代机制实例分析

Python专用方法与迭代机制实例分析:本文实例讲述了Python专用方法与迭代机制,分享给大家供大家参考之用。具体分析如下: 众所周知,Python 设计哲学是优雅、明确、简单,对于一件事只用一种最好的方法来做,而这种优雅在于背后很自然的隐藏了很多细节。比如对一些对象直接用for
推荐度:
标签: 方法 实例 分析
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top