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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    查看全部
  • map函数
    查看全部
  • 高阶函数
    查看全部
  • 直接写Person.__init__(self,name,gender)就行了,不用super(Person, self).__init__(name, gender)
    查看全部
  • 没有装饰器,代码本身就是定义的函数。s.grade ,返回函数名,位置。 装饰器函数把 函数 方法“装饰”成属性调用
    查看全部
    0 采集 收起 来源:python中 @property

    2018-01-02

  • f.__name__注意,这里name的左右两边各有两个下划线,如果只有一个的话,8和16行会报错。
    查看全部
  • 可变参数:*args 只有一个值 关键字参数:**kw 有键值对(参数名,值) 命名关键字参数: 定义时参数有个分隔符* ,不能省略参数名。。 要注意定义可变参数和关键字参数的语法: *args是可变参数,args接收的是一个tuple; **kw是关键字参数,kw接收的是一个dict。 以及调用函数时如何传入可变参数和关键字参数的语法: 可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3)); 关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})。 使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。 命名的关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。 定义命名的关键字参数不要忘了写分隔符*,否则定义的将是位置参数。 class Person(object): def __init__(self, name, gender, **kw): self.name=name self.gender=gender for k, v in kw.iteritems(): setattr(self, k, v) p = Person('Bob', 'Male', age=18, course='Python') print p.age print p.course
    查看全部
  • def format_name(s): return s.capitalize() #首字母大写,其余全部小写 print map(format_name, ['adam', 'LISA', 'barT'])
    查看全部
  • 注意!比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • sorted()可对list进行排序,也是一个高阶函数 也可对字符串数组进行排序,按照ASCII大小比较
    查看全部
  • 判断是否None或者空字符串: def is_not_empty(s): return s and len(s.strip())>0
    查看全部
  • fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 在上述代码中, 通过逐次添加元素 " f " ,创建了一个包含三个元素的list。 1.fs.append(f)中的 f 是函数名,可以理解成 i*i, 其代表的是一种逻辑映射关系,无具体数值,无法 print 出来。 2.第9行代码,为赋值语句,将list的值,依次赋给 f1,f2,f3。 3.上述代码生成的count()是一个list,其中三个元素分别是[ f , f , f ],或者理解成 [ i*i, i*i,i*i ], 如果print count(), 得到是一个没有数值的list: [ , , ]。 本例中,在执行底9行代码之后,可以知晓,f1=i*i,f2=i*i,f3=i*i。 在第9行代码之后,i最终的存储状态为i=3。 4.Print f1(), 请注意,带(),表示函数值,输出 f1(i=3),即为 9。 PS: f与 f()不一样,f为函数名,代表逻辑映射关系,无具体数值,无法print, f()为函数值,可以在python中print出来。
    查看全部
    0 采集 收起 来源:python中闭包

    2018-03-22

  • type() 函数获取变量的类型. dir() 函数获取变量的所有属性.dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数了. getattr(s, 'name') # 获取name属性 'Bob' >>> setattr(s, 'name', 'Adam') # 设置新的name属性 >>> s.name 'Adam' getattr(s, 'age') # 获取age属性,但是属性不存在,报错. getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20.
    查看全部
  • 判断类型的:函数isinstance()可以判断一个变量的类型,既可以用在Python内置的数据类型如str、list、dict,也可以用在我们自定义的类,它们本质上都是数据类型。 在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法。 在一条继承链上,一个实例可以看成它本身的类型,也可以看成它父类的类型。
    查看全部
  • 继承:要用 super(Student子类, self).__init__(name, gende) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。 函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。
    查看全部

举报

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

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