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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • https://img1.sycdn.imooc.com//5aea79b700010a8311810703.jpg

    查看全部
  • 关键字lambda 表示匿名函数。

    匿名函数有个限制,就是只能有一个表达式不写return,返回值就是该表达式的结果。

    使用匿名函数,可以不必定义函数名,直接创建一个函数对象。

    查看全部
  • class Person(object):

        pass

    p1=Person()

    p1.name='Bart'

    p2=Person()

    p2.name='Adam'

    p3=Person()

    p3.name='Lisa'

    L1=[p1,p2,p3]

    L2=sorted(L1,lambda p1,p2:cop(p1.name,p2.name))

    print L2[0].name

    print L2[1].name

    print L2[2].name

    查看全部
  • import json

    class Students(object):

    def __init__(self):

         pass

    def read(self):

        return r'["Tim", "Bob", "Alice"]'  

    s = Students()

    print json.load(s)


    #由于Python的动态特性,json.load()并不一定要从一个File对象中读取内容。任何对象,只要有read()方法,就称为File-like Object,都可以传给json.load().


    查看全部
    0 采集 收起 来源:python中多态

    2018-05-03

  • class A():

        a1=A()

        a2=A()

    #比较2个实例在内存中分配的地址是否一样,及判断是否为同一个对象,用is()方法

    print a1 is a2 ---->false2个对象,地址当然不同

    #判断2个实例的内容是否一样用“==”

    a1==a2--->false # a1 a2内容名字完=完全不一样,所以不同

    查看全部
  • 当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。

    查看全部
  • import os
    from os.path import isdir,isfile
    print os.path.isdir(r'/data/webroot/resource/python')
    print os.path.isfile(r'/data/webroot/resource/python/test.txt')
    print isdir(r'/data/webroot/resource/python')
    print isfile(r'/data/webroot/resource/python/test.txt')

    查看全部
  • 这里的append(f)是把f当一个变量看待了,所以这里的f是没有调用的,只是一个变量,而f1,f2,f3=count()这句count()返回了一个列表fs,里面有3个变量f分别对应f1,f2,f3,f1()就相当于运行了内部函数f,而刚才能得出f1,f2,f3表明count循环早已运行完毕,所以此时i=3,得出的数字永远是9

    查看全部
    0 采集 收起 来源:python中闭包

    2018-05-03

  • 如果一定要引用循环变量怎么办?方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变:


    查看全部
    0 采集 收起 来源:python中闭包

    2018-05-02

  • f1, f2, f3 = count(),这句话的意思是f1=count()[0],f2=count()[1],f3=count()[2].这种赋值语句只能用于数组,一一对应。


    查看全部
    0 采集 收起 来源:python中闭包

    2018-05-02

  • functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2:

    >>> import functools
    >>> int2 = functools.partial(int, base=2)
    >>> int2('1000000')
    64
    >>> int2('1010101')
    85

    中偏函数给我的第一印象就是,把一个已有的函数(参数较多),把它的一个功能写成一个新的函数,新函数的参数只有一个。

    查看全部
    0 采集 收起 来源:python中偏函数

    2018-05-02

  • 。如果要让调用者看不出一个函数经过了@decorator的“改造”,就需要把原函数的一些属性复制到新函数中:

    def log(f):
        def wrapper(*args, **kw):
            print 'call...'
            return f(*args, **kw)
        wrapper.__name__ = f.__name__
        wrapper.__doc__ = f.__doc__
        return wrapper


    查看全部
  • 我的理解是三层嵌套的decorate的第一层是传入一个变化的参数给最内层函数使用的。

    查看全部
  • 现在有点懂装饰器,装饰器是一个闭包。使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写f = decorate(f) 这样的代码。

    闭包的参数是一个函数,返回一个函数。这个函数的参数个数可以通过*arg, *kw达到传递任意参数的效果。在闭包内部的函数如这里的fn,它返回的也是一个函数,或者是传入函数的结果。可以在闭包中进行其他的事情。

    查看全部
  • 可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用:

    查看全部

举报

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

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