为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法
    查看全部
  • 以前我计算一个东西的时候,是先用一个数值,输入到一个过程中,启动这个过程,才能得到我的数值。现在出现了闭包,我只要把这个数值输入到闭包中,它能把我的数值和想要进行的过程组装成一个无参的函数,只要我在任意时刻启动这个无参函数,那么它就能输出我想要的结果。 以前想吃饭的时候,我要把米和水加到电饭锅里,煮熟得到饭。后来出现了一个机器,我把米和水加进去,它生产了一台装着我的米和水的电饭锅。虽然我现在不饿,但是只要任何时候我饿了,我按下按钮(启动电饭锅开始煮饭),那么我就可以吃到饭了。 这个新的电饭锅的优点就是你想吃随时米都可以成为饭,不吃的时候米就保持米的状态。 带闭包的函数就是能够生产电饭锅的机器,普通函数就是电饭锅
    查看全部
    15 采集 收起 来源:python中闭包

    2016-02-15

  • @functools.wrap(要隐藏的函数) 要隐藏的函数
    查看全部
  • log_decorator = log('DEBUG') @log_decorator def fn(): pass
    查看全部
  • def calc_prod(lst):这个函数里定义了一个函数,最后把整个函数都返回了 def prod(): def f(x,y): return x*y return reduce(f,lst,1) return prod #注意,只是返回函数名 f = calc_prod([1,2,3,4]) print f()
    查看全部
  • class 中定义的实例方法其实也是属性,它实际上是一个函数对象
    查看全部
  • 实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的
    查看全部
  • reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。 例如,编写一个f函数,接收x和y,返回x和y的和: def f(x, y): return x + y 调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算: 先计算头两个元素:f(1, 3),结果为4; 再把结果和第3个元素计算:f(4, 5),结果为9; 再把结果和第4个元素计算:f(9, 7),结果为16; 再把结果和第5个元素计算:f(16, 9),结果为25; 由于没有更多的元素了,计算结束,返回结果25。 上述计算实际上是对 list 的所有元素求和。虽然Python内置了求和函数sum(),但是,利用reduce()求和也很简单。 reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算: reduce(f, [1, 3, 5, 7, 9], 100) 结果将变为125,因为第一轮计算是: 计算初始值和第一个元素:f(100, 1),结果为101。
    查看全部
  • 假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list: 输入:['adam', 'LISA', 'barT'] 输出:['Adam', 'Lisa', 'Bart']
    查看全部
  • def format_name(s): return s.capitalize() print map(format_name, ['adam', 'LISA', 'barT'])
    查看全部
  • 所有的函数都是可调用对象。 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。
    查看全部
    0 采集 收起 来源:python中 __call__

    2016-02-15

  • 特殊方法实现要求
    查看全部
  • 1、可以用 type() 函数获取变量的类型,它返回一个 Type 对象; 2、可以用 dir() 函数获取变量的所有属性,dir()返回的属性是字符串列表; 3、如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数; 4、传入**kw 即可传入任意数量的参数,并通过 setattr() 绑定属性。
    查看全部
  • 多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。
    查看全部
  • 如果一个属性由双下划线开头(__),该属性就无法被外部访问 如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。 以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!