高级语言python-2 11.20

(一):属性property

1.私有属性添加getter和setter


2,用property升级get  set

                                 注意property里参数的位置不能颠倒()

3.用property取代get set

注意代码的顺序先get    后set


(二)生成器

定义:简单的说生成器就是一种,当你需要生成100多万个值时(或者更多),他可以一个一个帮你获取到,不会让你一下子拿到那么多,白白的浪费内存空间,每次可以用next向下取值。主要就是不浪费资源,如果你用python2的话,一下子取那么多值就在一直运行,容易死机

缺点:不能指定位置访问

有三种方法:

第一种方法:只要把一个列表生成式的[ ]改成( )


第二中方法:推算的算法比较复杂,用类似列表生成式的for循环无法实现的时候, 还可以用函数来实现。


第三种方法:用send实现动态方法

注意生成器第一次打印不会调用函数,所以必须调用一次在用send,传值

yield i就近似相当于pe,然后pe=ret。-------所以可以传值

(三)迭代器

注意:迭代器指针运行一次,向后偏移一位直到所有的元素被访问完结束

把可迭代但不是迭代器的升级为迭代器  iter( )


(四)闭包

闭包:原来局部变量在用完的时候就会被垃圾机制回收,用闭包之后可保存下来,继续使用

定义:在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包


(五)装饰器

简单地说装饰器就是在不改变原来的代码(也就是不违背开闭原则)的基础上,拓展原来代码的功能。其实可以结合父类子类这样会更好理解


多层装饰器


注意:出现多层时,程序运行的时候先运行第二个装饰器。然后把第二个整体作为参数传给第一个装饰器。打印的时候按顺序来

装饰器示例:

无参函数:


有参函数:


装饰器中的return   

不加return,接收不到函数里的返回值,一般要加return

加return


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,665评论 19 139
  • 你不知道JS:异步 第四章:生成器(Generators) 在第二章,我们明确了采用回调表示异步流的两个关键缺点:...
    purple_force阅读 1,050评论 0 2
  • 1.1==,is的使用 ·is是比较两个引用是否指向了同一个对象(引用比较)。 ·==是比较两个对象是否相等。 1...
    TENG书阅读 792评论 0 0
  • 两本不错的书: 《Python参考手册》:对Python各个标准模块,特性介绍的比较详细。 《Python核心编程...
    静熙老师哈哈哈阅读 3,445评论 0 80
  • 已经好多次了,吃饭的时候想吵架。家里的圆桌直径将近一米,把两边收起来,一家四口吃饭刚刚好,但是我妈就喜欢打...
    Nothing小星星阅读 485评论 0 0

友情链接更多精彩内容