香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

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


时间:2021-11-09 10:23 作者:admin


本文实例讲述了python/' target='_blank'>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程序设计的学习有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)