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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • Python的装饰器本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。

     decorator 是使用Python提供的 @ 语法,以避免手动编写f = decorate(f) 这样的代码。

    为了让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,即, f(*args, **kw)。保证任意个数的参数总是能正常调用

    查看全部
  • woaini

    查看全部
  • lambda匿名函数,lambda s : s and len(s.strip()) > 0

    冒号前的s是传递的参数;

    冒号后是返回值。

    查看全部
  • 此任务中可以使用reduce()高阶函数

    def calc_prod(lst):

        def prod(x ,y):

            return x*y

        def prod_c():

            return reduce(prod, lst)

        return prod_c


    f = calc_prod([1,2,3,4,5])

    print f()

    查看全部
  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。

    闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。

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

    2019-04-10

  • capitalize()函数将字符串中的第一个字符转换成大写,其它字符转换成小写。

    查看全部
  • python中高阶函数:

    1、变量可以指向函数

    2、函数名就是指向函数的变量

    3、能接收函数做参数的函数

    4、一个函数就可以接收另一个函数作为参数

    查看全部
  • __call__()可以把一个类实例变成一个可调用对象

    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
    
        def __call__(self, friend):
            print 'My name is %s...' % self.name
            print 'My friend is %s...' % friend
    >>> p = Person('Bob', 'male')
    >>> p('Tim')
    My name is Bob...
    My friend is Tim...


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

    2019-04-09

  • __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存。

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

    2019-04-09

  • 因为Python支持高阶函数,在函数式编程中我们介绍了装饰器函数,可以用装饰器函数把 get/set 方法“装饰”成属性调用:

    class Student(object):
        def __init__(self, name, score):
            self.name = name
            self.__score = score
        @property
        def score(self):
            return self.__score
        @score.setter
        def score(self, score):
            if score < 0 or score > 100:
                raise ValueError('invalid score')
            self.__score = score

    注意: 第一个score(self)是get方法,用@property装饰,第二个score(self, score)是set方法,用@score.setter装饰,@score.setter是前一个@property装饰后的副产品。


    查看全部
    0 采集 收起 来源:python中 @property

    2019-04-09

  • 通过Person类创建出xiaoming、xiaohong等实例

    区分xiaoming、xiaohong要依靠他们各自的名字、性别、生日等属性。

    由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,例如,给xiaoming这个实例加上name、gender和birth属性:

    xiaoming = Person()
    xiaoming.name = 'Xiao Ming'
    xiaoming.gender = 'Male'
    xiaoming.birth = '1990-1-1'


    查看全部
  • web.py报错

    解决办法pip install web.py==0.40-dev1


    查看全部
  • 在Python 3.x中,字符串统一为unicode,不需要加前缀 u,而以字节存储的str则必须加前缀 b。

    查看全部
  • Python 定义了__str__()__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。

    查看全部
  • isinstance() 判断它是否是某种类型的实例;

    用 type() 函数获取变量的类型,它返回一个 Type 对象;

    用 dir() 函数获取变量的所有属性。

    获取或者设置对象的属性,要用 getattr() setattr( )函数

    查看全部

举报

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

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