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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 单看 p('Tim') 你无法确定 p 是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著。
    查看全部
    0 采集 收起 来源:python中 __call__

    2017-09-15

  • 方法调用将作用在 x 的实际类型上。s 是Student类型,它实际上拥有自己的 whoAmI()方法以及从 Person继承的 whoAmI方法,但调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。
    查看全部
    0 采集 收起 来源:python中多态

    2017-09-15

  • self:表示实例的本身 @classmethod+cls:表示类的本身
    查看全部
  • 在每次原函数调用指向新的函数名是的时候,加上@functools.warps(原函数名),这样就可以保证原函数的基本属性不会改变
    查看全部
  • 如果修饰器里面需要添加参数,用来防止固定数据,那么就需要进行多一层的传参数
    查看全部
  • 编写修饰器的时候,都采*args,**kw来进行参数表示,这样无论原函数的参数式怎样的都无问题了
    查看全部
  • map和reduce 的区别在于reduce中的函数的传入参数必须为两个值
    查看全部
  • @functools.wraps(f)放在装饰器后即perf_decorator后
    查看全部
  • 第三行是用来判断unit的参数是什么,比无参数decorator多了一行 第四行就是无参数decorator的第一行
    查看全部
  • r=f(*args,**kw) 这行是r等于performance(f)中的f函数,即是代表我们需要打印出来的函数 可以看成r=f(*args,**kw)=factorial(n) 记住记住记住是f.__name__两条下划线啊大哥
    查看全部
  • g1=new_fn(f1)和f1=new_fn(f1)中 后面的f1即括号中的f1,是定义中的f1变量即def f1(x)
    查看全部
  • return s and len(s.strip())>0 返回一个s并s去掉空格后字符长度大于0 匿名函数也要写s and .... 前面的s是表明输出
    查看全部
  • 可见,由于decorator返回的新函数函数名已经不是'f2',而是@log内部定义的'wrapper'。这对于那些依赖函数名的代码就会失效。decorator还改变了函数的__doc__等其它属性。如果要让调用者看不出一个函数经过了@decorator的“改造”,就需要把原函数的一些属性复制到新函数中 Python内置的functools可以用来自动化完成这个“复制”的任务
    查看全部
  • 注意: 如果list不仅仅包含 Student 类,则 __cmp__ 可能会报错: L = [Student('Tim', 99), Student('Bob', 88), 100, 'Hello'] print sorted(L) 请思考如何解决。
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2017-09-14

  • 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。 我们把 Person 类变成一个可调用对象: 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 现在可以对 Person 实例直接调用: >>> p = Person('Bob', 'male') >>> p('Tim') My name is Bob... My friend is Tim... 单看 p('Tim') 你无法确定 p 是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著。
    查看全部
    0 采集 收起 来源:python中 __call__

    2018-03-22

举报

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

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