学习笔记系列——函数式编程

人生苦短,我用python



高阶函数:一个函数接收另一个函数作为参数,这种函数称为高阶函数

map(函数,迭代对象)

reduce()结果和下一个元素做累积计算

fliter()过滤序列  ----通过判断返回值为True或False-----需使用list返回结果


面向对象编程——object oriented programming

类和实例:

__init__(self,,)第一个参数必须为self,表示创建的实例本身

访问限制:在变量名前加__ 变为私有变量 例如__x  __name

通过 def set_name():

self.__name = name 可以从外部改变参数

增加条件避免传入的参数无效

以双下划线开头结尾的为特殊变量可以访问

继承、多态

判断一个变量是否为某个类型:is instance(变量,类型)

__slots__()限制class能添加的属性,只对当前实例起作用,对继承的子类无效


@property将方法变为属性——实用

@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值

加.setter为可读写,不加则为只读

无需调用函数而直接调用属性

返回的值需设置为self._xx  同访问限制的__区别

多重继承---可继承多个类    Mixin机制

__str__()返回字符串

__repr__()调试服务

__repr__ = __str__

__iter__()返回一个迭代对象

__getitem__()获得任意对象  int or slice

__setitem__()把对象作为list or dict

__getattr__()动态返回一个属性  可以raise AttributeError判断不存在该属性

__call__()直接在实实例本身上调用

用callable()查看能否调用


实现 :无论API怎么变,SDK都可以根据URL实现完全动态的调用,不随API的增加而改变

@unique装饰器检查保证没有重复值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 1,601评论 0 6
  • pyton review 学习指南 https://www.zhihu.com/question/29138020...
    孙小二wuk阅读 1,077评论 0 2
  • 教程总纲:http://www.runoob.com/python/python-tutorial.html 进阶...
    健康哥哥阅读 2,087评论 1 3
  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 1,283评论 0 0
  • 曾经不喜欢吃的东西,后来也不讨厌了。曾经不喜欢的衣服,后来也不讨厌了。曾经不喜欢的人,后来也不讨厌了。我以为我会喜...
    Soul麦芽阅读 6,975评论 325 250