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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • lambda: 'A'等价于return'A',相当于一个函数f,那么f()='A'.因此,p1.get_grade=f,p1.get_grade()=f()

    查看全部
  • 匿名函数

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

    2:匿名函数关键字lambda

    3:返回函数也可用匿名函数表示

    查看全部
  • 这里 p是分子,q是分母 。这里实现的是 两个分数的加法

    查看全部
  • a, b = b, a + b其实就是多个变量的赋值运算,先算=右边,再赋值给左边变量:

    0)a=0,b=1


    1)a=b=1,b=a+b=1


    2)a=b=1,b=a+b=2


    3)a=b=2,b=a+b=3


    4)a=b=3,b=a+b=5


    5)a=b=5,b=a+b=8


    6)a=b=8,b=a+b=13


    7)a=b=13,b=a+b=21


    8)a=b=21,b=a+b=34


    9)a=b=34,b=a+b=55

    查看全部
    1 采集 收起 来源:python中 __len__

    2018-03-29

  • **kw是关键字参数,用于字典
    iteritems()用于字典kw的遍历
    setattr(self, k, v)就等价于self.k = v
    综上就是,遍历dict  kw 中的属性,给每个属性设置了属性值

    查看全部
  • p1.get_grade是实例p的一个属性,这个属性就是lambda:'A'函数

    p1.get_grade()是实例p调用此方法,这个方法就是上边函数

    函数调用不需要传入self,但是方法调用需要传入self


    查看全部
  • 111

    查看全部
  • 这章不太懂,先跳过

    查看全部
  • import time


    def performance(f):

        def fn(n):

            print 'call ' + f.__name__ +'() in' , time.time()

            return f(n)

        return fn


    @performance

    def factorial(n):

        return reduce(lambda x,y: x*y, range(1, n+1))


    print factorial(10)


    查看全部
  • def count():

        fs = []

        for i in range(1, 4):

            def f(m=i):

                return m*m

            fs.append(f)

        return fs


    f1, f2, f3 = count()

    print f1(), f2(), f3()


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

    2018-03-29

  • self.get_grade是类的一个属性,他指向一个lambda函数

    查看全部
  • p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。

    查看全部
  • def calc_prod(lst):

        def lazy_calc():

            return reduce(cj,lst)

        return lazy_calc


    def cj(x,y):

        return x*y


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

    print f()


    查看全部
  • 一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用?

    虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。

    实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的:

    class Person(object):

       def __init__(self, name):
           self.__name = name

       def get_name(self):
           return self.__name


    查看全部
  • 原因是 p1.address = 'China'并没有改变 Person 的 address,而是给 p1这个实例绑定了实例属性address ,对p1来说,它有一个实例属性address(值是'China'),而它所属的类Person也有一个类属性address,所以:

    访问 p1.address 时,优先查找实例属性,返回'China'。

    访问 p2.address 时,p2没有实例属性address,但是有类属性address,因此返回'Earth'。

    可见,当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。


    查看全部

举报

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

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