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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。
    查看全部
  • 一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。
    查看全部
  • 第三方包网站:https://pypi.python.org
    查看全部
  • 定义一个int2()的函数,默认把base=2传进去: def int2(x, base=2): return int(x, base) 这样,我们转换二进制就非常方便了: >>> int2('1000000') 64 >>> int2('1010101') 85 functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2: >>> import functools >>> int2 = functools.partial(int, base=2) >>> int2('1000000') 64 >>> int2('1010101') 85 **functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值 **任务 在第7节中,我们在sorted这个高阶函数中传入自定义排序函数就可以实现忽略大小写排序。请用functools.partial把这个复杂调用变成一个简单的函数: 代码如下图所示:
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-22

  • 有decorator的情况下,再打印函数名: def log(f): def wrapper(*args, **kw): print 'call...' return f(*args, **kw) return wrapper @log def f2(x): pass print f2.__name__ 输出: wrapper 可见,由于decorator返回的新函数函数名已经不是'f2',而是@log内部定义的'wrapper'。这对于那些依赖函数名的代码就会失效。decorator还改变了函数的__doc__等其它属性。如果要让调用者看不出一个函数经过了@decorator的“改造”,就需要把原函数的一些属性复制到新函数中: def log(f): def wrapper(*args, **kw): print 'call...' return f(*args, **kw) wrapper.__name__ = f.__name__ wrapper.__doc__ = f.__doc__ return wrapper 这样写decorator很不方便,因为我们也很难把原函数的所有必要属性都一个一个复制到新函数上,所以Python内置的functools可以用来自动化完成这个“复制”的任务: import functools def log(f): @functools.wraps(f) def wrapper(*args, **kw): print 'call...' return f(*args, **kw) return wrapper 最后需要指出,由于我们把原函数签名改成了(*args, **kw),因此,无法获得原函数的原始参数信息。即便我们采用固定参数来装饰只有一个参数的函数:
    查看全部
  • 类属性: @classmethod def name(cls):
    查看全部
  • def myabs(): return abs # 返回函数 def myabs2(x): return abs(x) # 返回函数调用的结果,返回值是一个数值 返回函数可以把一些计算延迟执行。 def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum **任务: 请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。 代码如下图所示:
    查看全部
  • 实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的.
    查看全部
  • python中编写带参数decorator **任务 上一节的@performance只能打印秒,请给 @performace 增加一个参数,允许传入's'或'ms': 代码如下图所示:
    查看全部
  • items()可以分别访问字典中的键-值对。 iteritems():迭代的方式访问
    查看全部
  • def function(name,*k1,**k2) *k1表示接受元祖 **k2表示接受字典
    查看全部
  • 可以通过 setattr(self, 'name', 'xxx') 设置属性。
    查看全部
  • python中编写无参数decorator(装饰器) **@log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用 **任务 请编写一个@performance,它可以打印出函数调用的时间。 代码如下图所示:【系统时间:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())】
    查看全部
  • Python 获取对象信息 type() 返回一个Typeduix dir() 函数所有属性 getattr(s,'name')获取name属性 getattr(s,'name',defValue)如果不存在 返回默认值 setattr(s,'name','Adam')设置新的name
    查看全部

举报

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

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