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

本文实例讲述了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 语句来进行操作,非常的方便。对于一些特别大甚至无限的集合,迭代器避免了一次性将数据集载入,几乎是唯一的访问方法。

立即学习“Python免费学习笔记(深入)”;

#!/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程序设计的学习有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2291055.html

(0)
上一篇 2025年2月28日 00:44:54
下一篇 2025年2月25日 05:01:00

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python中执行shell命令的几个方法小结

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下:os.system(‘cat /proc/cpuinfo’) 但是发现页面上打印的命令执行结果 0或者1,当然不满足需…

    编程技术 2025年2月28日
    200
  • Python threading多线程编程实例

    python 的多线程有两种实现方法: 函数,线程类 1.函数 调用 thread 模块中的 start_new_thread() 函数来创建线程,以线程函数的形式告诉线程该做什么 复制代码 代码如下: 立即学习“Python免费学习笔记(…

    编程技术 2025年2月28日
    200
  • Python显示进度条的方法

    本文实例讲述了python显示进度条的方法,是python程序设计中非常实用的技巧。分享给大家供大家参考。具体方法如下: 首先,进度条和一般的print区别在哪里呢? 答案就是print会输出一个,也就是换行符,这样光标移动到了下一行行首,…

    2025年2月28日
    200
  • Python中用Descriptor实现类级属性(Property)详解

    上篇文章简单介绍了python中描述器(descriptor)的概念和使用,有心的同学估计已经get√了该技能。本篇文章通过一个descriptor的使用场景再次给出一个案例,让不了解情况的同学可以更容易理解。 先说说decorator 这…

    编程技术 2025年2月28日
    200
  • Python实现的检测web服务器健康状况的小程序

    对web服务器做健康检查,一般我们都是用curl库(不管是php,perl的还是shell的),大致的方法一致: 复制代码 代码如下:curl -I -s www.qq.com  |head -1|awk ‘{ health =…

    2025年2月28日
    200
  • python写的一个squid访问日志分析的小程序

    这两周组里面几位想学习python,于是我们就创建了一个这样的环境和氛围来给大家学习。 昨天在群里,贴了一个需求,就是统计squid访问日志中ip 访问数和url的访问数并排序,不少同学都大体实现了相应的功能,我把我简单实现的贴出来,欢迎拍…

    2025年2月28日
    200
  • python里大整数相乘相关技巧指南

    问题 大整数相乘 思路说明 对于大整数计算,一般都要用某种方法转化,否则会溢出。但是python无此担忧了。 Python支持“无限精度”的整数,一般情况下不用考虑整数溢出的问题,而且Python Int类型与任意精度的Long整数类可以无…

    编程技术 2025年2月28日
    200
  • python里将list中元素依次向前移动一位

    问题 定义一个int型的一维数组,包含10个元素,分别赋值为1~10, 然后将数组中的元素都向前移一个位置, 即,a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值,然后输出这个数组。 解决(Python) #!…

    编程技术 2025年2月28日
    200
  • python time模块用法实例详解

    本文详细讲述了python的内嵌time模块的用法。分享给大家供大家参考之用。具体分析如下:  一、简介 time模块提供各种操作时间的函数 说明:一般有两种表示时间的方式: 第一种是时间戳的方式(相对于1970.1.1 00:00:00以…

    编程技术 2025年2月28日
    200
  • 用Python实现QQ游戏大家来找茬辅助工具

    好久没写技术相关的文章,这次写篇有意思的,关于一个有意思的游戏——QQ找茬,关于一种有意思的语言——Python,关于一个有意思的库——Qt。 这是一个用于qq大家来找茬(美女找茬)的辅助外挂,开发的原因是看到老爸天天在玩这个游戏,分数是惨…

    2025年2月28日
    200

发表回复

登录后才能评论