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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 要定义关键字参数,使用 **kw

    查看全部
  • __init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。

    查看全部
  • from math import log
    from logging import log as logger   # logging的log现在变成了loggerprint log(10)   # 调用的是math的loglogger(10, 'import from logging')   # 调用的是logging的log


    查看全部
  • 因为 add() 函数需要传入两个参数,但是 @log 写死了只含一个参数的返回函数。

    要让 @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) 这样的代码。

    查看全部
  • def case(s1, s2):

        if s1<s2:

            return 1

        elif s1>s2:

            return -1

        else:

            return 0




    print sorted([36,5,12,9,21],case)


    查看全部
  • Python中实例属性和类属性同名

    1:出现同名情况时,用实例访问该属性,优先返回实例属性的值。

    2:删除实例属性的方法,del 实例名.属性名。

    3:结论是不要在实例中定义和类属性相同名字的实例属性,否则操作的都是实例的属性值。


    查看全部
  • 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问

    查看全部
  • (1)__slots__ 无论是父类还是子类,只有在对应的类定义中使用了,
    那么在动态添加属性时才会提示错误;
    如果只是父类定义了__slots__,而子类继承却没有自定义__slots__,
    还是可以对子类进行动态添加属性的
    (2)super方法的好处是不用输入父类名,当父类名改变或继承关系改变时
    (比如class A(B) --> class A(C)),
    只需更改类的第一行,而不用改变类的内部


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

    2018-05-15

  • 此题木有看懂,代码出错

    查看全部
  • 估计很多人没懂这个吧(self.p * r.q + self.q * r.p,  self.q * r.q)

    在这里p是分子,q是分母

    (self.p * r.q + self.q * r.p)这是有理化计算后的分子

    (self.q * r.q)这是有理化计算后的分母

    r.q是令一个加数的分子,r.p是另一个加数的分母

    例如:1/3+3/2  第一个分数的分子乘第二个分数的分母+第一个分数的分母乘第二个分数的分子(也就是交叉相乘再相加)最后得11(这是经过计算后得到的结果的分子)

    第一个分数的分母乘第二个分数的分母( self.q * r.q)得到结果是6 

    -------摘自评论区某位大神的平路,醍醐灌顶

    查看全部
  • s.strip(剥夺)(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。

    查看全部
  • def prod(x, y):
       return x*y

    print reduce(prod, [2, 4, 5, 7, 12])

    查看全部
  • def format_name(s):


        return s[0].upper()+s[1:].lower()



    print map(format_name, ['adam', 'LISA', 'barT'])


    查看全部
  • import math


    def sqrt(x, y, f):

        return math.sqrt(x) + math.sqrt(y)


    print sqrt(25, 9,abs)


    查看全部

举报

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

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