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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 实例的属性可以像普通变量一样进行操作
    查看全部
  • pip安装python第三方模块: 1.安装2.7.9,选择安装pip 2.打开cmd 3.输入pip install web.py 4.输入python 5.import web导入web第三方模块
    查看全部
  • 要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。 要在Python 2.7中引入3.x的除法规则,导入__future__的division 当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。
    查看全部
  • 如果导入的模块不存在,Python解释器会报 ImportError 要提高Python代码的运行速度,最简单的方法是把某些关键函数用 C 语言重写 StringIO 是纯Python代码编写的,而 cStringIO 部分函数是 C 写的 try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。
    查看全部
  • 只希望导入用到的math模块的某几个函数,而不是所有函数 from math import pow, sin, log 使用import导入模块名,由于必须通过模块名引用函数名,因此不存在冲突 如果使用 from...import 导入 log 函数,势必引起冲突。这时,可以给函数起个“别名”来避免冲突 from math import log from logging import log as logger
    查看全部
  • 引用模块 同名模块放不同包中可解决模块冲突 包就是文件夹 模块=py文件 包可以有多级 每个文件夹必须有_init_.py文件才能当成包处理
    查看全部
  • 把 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
    查看全部
    0 采集 收起 来源:python中 __call__

    2017-07-14

  • int()函数可以把字符串转换为整数int('12345')-->12345 int()函数还提供额外的base参数,默认值为10,就可以做 N 进制的转换 int('12345', base=8)-->5349 int('12345',16)-->74565 定义一个int2()的函数,默认把base=2传进去 def int2(x, base=2): return int(x, base) int2('1000000') functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2() int2 = functools.partial(int, base=2) 可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值 sorted这个高阶函数中传入自定义排序函数就可以实现忽略大小写排序
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-22

  • decorator返回的新函数函数名已经不是'f2',而是@log内部定义的'wrapper'。这对于那些依赖函数名的代码就会失效。decorator还改变了函数的__doc__等其它属性。如果要让调用者看不出一个函数经过了@decorator的“改造”,就需要把原函数的一些属性复制到新函数中: wrapper.__name__ = f.__name__ wrapper.__doc__ = f.__doc__ 很不方便,因为我们也很难把原函数的所有必要属性都一个一个复制到新函数上,所以Python内置的functools可以用来自动化完成这个“复制”的任务: def log(f): @functools.wraps(f) def wrapper(*args, **kw): def log(f): @functools.wraps(f) def wrapper(x): print 'call...' return f(x) return wrapper
    查看全部
  • __slots__ = ('score',) #父类的可不写,属性名需加引号
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-07-13

  • tudent类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现。 __slots__是指一个类允许的属性列表: class Student(object): __slots__ = ('name', 'gender', 'score') __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-07-13

  • if score < 0 or score > 100: raise ValueError('invalid score')
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • import time #调用函数参数 def performance(f): #定义装饰器函数 def fn(*args,**kw): #定义接收任何参数的子函数 t1=time.time() #获取当前电脑时间 r=f(*args,**kw) #传入并运行factorial()函数 t2=time.time() #获取当前电脑时间 print 'call %s() in %fs' % (f.__name__,(t2-t1)) #%s表示该位置应填入字符串,%f表示该位置应填入浮点型数字(即包含小数尾数的数字),()和s没任何意义(还是()和s),(f.__name__,(t2-t1))以元组形式表示需要填入的字符串(本处f.__name__=factorial)和浮点型数字 return r #返回执行factorial()函数后的值 return fn #返回子函数fn @performance #定义装饰器 def factorial(n): #定义原函数factorial() return reduce(lambda x,y: x*y, range(1, n+1)) #以匿名函数定义原函数运算规则和返回值 print factorial(10) #此时的factorial经过装饰器@performance包装,已经是performance(factorial),该命令等价于 print performance(factorial)(10) #输出fn()运算结果:1、给出装饰器添加的部分:call factorial() in 0.0000s;2、给出原函数factorial(10)元算结果,3628800
    查看全部
  • *args可以当作可容纳多个变量组成的tuple **kw可以当作容纳多个key和value的dict 同时使用*args和**kws时,必须*args参数列要在**kw前
    查看全部
  • decorator 本质上就是一个高阶函数 使用@ 语法,避免手动编写 f = decorate(f) 这样的代码。 def log(f): def fn(x): print 'call ' + f.__name__ + '()...' return f(x) return fn @log def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10) add() 函数需要传入两个参数,但是 @log 写死了只含一个参数的返回函数。 利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用: def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn
    查看全部

举报

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

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