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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 可见,只有以双下划线开头的"__job"不能直接被外部访问
    查看全部
  • __init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。
    查看全部
  • 要让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用: def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn 现在,对于任意函数,@log 都能正常工作。
    查看全部
  • Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。 使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。
    查看全部
  • (sorted,cmp=lambda a,b:cmp(a.lower(),b.lower())) lambda a,b:函数名lambda和参数a,b cmp(a.lower(),b.lower()):运算结果! cmp= 将lambda函数附上cmp
    查看全部
    0 采集 收起 来源:python中偏函数

    2017-05-26

  • 装饰器的作用
    查看全部
  • 匿名函数 lambda x: x * x 实际上就是: 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 安装第三方模块:pip
    查看全部
  • 在编程的时候,我们总是会遇到一种可有可无的参数问题,Python为我们提供了两种解决方案:*args和**kwargs,首先解释一下什么含义。 (1)*argv就是可变参数元组(tuple),可以表示任何多个无名参数,它的数据结构是:元组(tuple)。 (2)**kwargv则是可变参数字典(dict),可以表示任意多个关键字参数,它的数据结构是:字典(dict) 需要注意的是,如果同时使用*args和**kwargs,需要将*args放在**kwargs的前面。 究其本质而言,args和kwargs只是官方给出的一个名字而已,也可以用自己的名字来代替,重要的还是*和**,*和**是Python的函数定义中有两种特殊的情况,* 用来传递任意个无名字参数,这些参数会一个Tuple的形式访问。**用来处理传递任意个有名字的参数,这些参数用dict来访问。 下面举几个例子: #用noname代替args [html] view plain copy def test_args(name,*noname): print(name) print(noname[0]) print(noname) test_args('hello',4,63,44) [html] view plain copy 屏幕输出: [html] view plain copy hello 4 (4 63 44) [html] view plain copy #kwargs 测试 def test_kwargs(name,**kwargs): print('name') print(kwargs) test_kwargs('hello',a1=1,a2='5',a3='hell0 world') 屏幕输出: name {'a1': 1, 'a2': '5', 'a3': 'hell0 world'} 需要注意的是: *和** 只是参数入口处的标号,在函数中使用则是args或者kwargs,不需要加*和**
    查看全部
  • 不同py文件中同一个变量互不影响 模块多了容易重名,只要放入不同的包中即可 引用完整模块 包是文件夹,包下必须有__init__.py,且每层都要有
    查看全部
  • 要定义关键字参数,使用 **kw; 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。 参考代码: class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth for k, v in kw.iteritems(): setattr(self, k, v) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name print xiaoming.job
    查看全部
  • 排序语法!!! sorted(L1, lambda p1, p2: cmp(p1.name, p2.name))
    查看全部
  • 导入模块 定义第一层函数,引入单位 定义第二层函数,引入原始函数 定义第三层函数,实现加功能并抛出原始函数
    查看全部
  • 问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可.
    查看全部
    1 采集 收起 来源:python中闭包

    2017-05-25

  • filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    查看全部

举报

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

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