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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 在编程的时候,我们总是会遇到一种可有可无的参数问题,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,不需要加*和**
    查看全部
  • map()函数不改变原有的list,而是返回一个新的list 利用map()函数,可以把一个list转换为另一个list,只需要传入转换函数 注意:由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。
    查看全部
  • 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问
    查看全部
  • Python支持的函数式编程: 不是纯函数式编程:允许有变量 支持高阶函数:函数也可以作为变量传入 支持闭包:有了闭包就能返回函数 有限度地支持匿名函数
    查看全部
  • Python安装三方模块 管理第三方模块工具:1. easy_install ;2. pip(已内置到py 2.7.9),推荐pip; 利用https://pypi.python.org/ 该网站查找第三方模块,并利用pip install xx.py 导入
    查看全部
  • 1. Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。 2. 当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。 3. __future__的底划线为两个字符 4. isinstance(变量, 类型) 如 isinstance(s, unicode) Ture # 判断变量类型 isinstance(1, int) True # 判断函数
    查看全部
  • sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • (1)*argv就是可变参数元组(tuple),可以表示任何多个无名参数,它的数据结构是:元组(tuple)。 (2)**kwargv则是可变参数字典(dict),可以表示任意多个关键字参数,它的数据结构是:字典(dict) 实例的初始属性中接受一个dict,用{key,values}表示,所以job=‘Student’表示为{"job":"Student"} 可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性
    查看全部
  • 当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性
    查看全部
  • Python 支持的函数式编程 不是纯函数是编程:允许有变量 支持高阶函数:函数也可以作为变量传入 支持闭包:有了闭包就能返回函数 有限度地支持匿名函数
    查看全部
  • 函数式编程特点 纯函数式编程:不需要变量,没有副作用,测试简单 支持高阶函数,代码简洁
    查看全部
  • 函数:function 函数式:functional C语言:函数 Python:函数式 函数式编程特点: 把计算视为函数非指令
    查看全部
  • python 函数闭包 要点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。 1 不要引用可变的变量 2 要引用每次的变量都唯一
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-03

  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 返回函数不要引用任何循环变量,或者后续会发生变化的变量。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-03

举报

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

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