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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • _xxx,可以再子类中使用相当于protected ,虽然也可以被外界访问但是按照习惯不应该被访问 __xxx不可以在子类中使用,相当于private,不可以被外界访问,但是python中没有私有化,只是将__xxx转化成了_Classname__xxx,所以访问__xxx会报错,可以访问 '实例对象._Classname__xxx' __xxx__在python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,但是通常不用于普通属性
    查看全部
  • super(Student, self).__init__(name, gender)
    查看全部
  • class Person(object): __count = 0 @classmethod def how_many(w): return w.__count ython中定义类方法 和属性类似,方法也分实例方法和类方法。 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身 def __init__(self,name): self.name=name Person.__count=Person.__count +1
    查看全部
  • reduce()函数 reduce()函数接收的参数和 map()类似,一个函数 f,一个list 但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。 reduce()还可以接收第3个可选参数,作为计算的初始值
    查看全部
  • def calc_prod(lst): def lazy_prod(): return reduce(lambda x,y: x*y, lst) return lazy_prod f = calc_prod([1, 2, 3, 4]) print f() 概念:python中的返回函数,顾名思义就是在函数体里再自定义函数,返回值为当前的这个函数,如a函数嵌套b函数 最后返回b函数,而调用函数a,c=a() 结果就是c=b() 应用:返回函数可以把一些计算延迟执行,由于可以返 回函数,我们在后续代码里就可以决定到底要不要调用该函数 函数:lambda x, y : x * y表达式的意思是创建一个函数,带两个参数x和y,返回x乘y
    查看全部
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方,就可以用map()函数: 因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算: def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) 输出结果: [1, 4, 9, 10, 25, 36, 49, 64, 81] 注意:map()函数不改变原有的 list,而是返回一个新的 list。 利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。 由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。
    查看全部
  • 函数名其实就是指向函数的变量
    查看全部
  • 概念:模块和包。 以py后缀结尾的文件(如test.py)称为模块; 包含这些py文件的文件夹称为包。(注意:区分包和普通目录,包每层下面都必须有_init_.py文件,即使是空的也可以) 应用:模块>解决代码多,难以维护的问题,好处是同一个名字变量互不影响;包>解决py模块的名称相同的冲突 调用:import a.py/import test.a.py(其中test是包名称,a是模块名称)
    查看全部
  • 概念:python中偏函数 当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担 例子:functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2: #sorted_ignore_case = functools.partial(sorted,cmp=lambda s1,s2:cmp(s1.upper(),s2.upper())) #sorted_ignore_case = functools.partial(sorted,key=str.lower) >>> import functools >>> int2 = functools.partial(int, base=2) >>> int2('1000000') 64 >>> int2('1010101') 85 应用:functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-22

  • 概念:装饰器decorator完善 应用:@decorator可以动态实现函数功能的增加,把原函数所有必要的属性复制到新函数上 缺点:decorator返回的新函数函数名已经不是原函数了,decorator还改变了函数的__doc__等其它属性 完善:如果要让调用者看不出一个函数经过了@decorator的“改造”,就需要把原函数的一些属性复制到新函数中 方法一:(这样写decorator很不方便,因为我们也很难把原函数的所有必要属性都一个一个复制到新函数) wrapper.__name__ = f.__name__ wrapper.__doc__ = f.__doc__ 方法二:(Python内置的functools可以用来自动化完成这个“复制”的任务) import functools def log(f): @functools.wraps(f) def wrapper(*args, **kw): print 'call...' return f(*args, **kw) return wrapper 新模块函数:import functools,@functools.wraps(f) 复制函数f的所有属性的装饰器
    查看全部
  • 概念:带参数的decorate,如@log(a) 新方法:t*=1000 if unit=='ms' else t ;if else的简便写法 if前面的语句是执行语句 后面的语句是条件 else后面的语句是if条件不成立时执行的
    查看全部
  • 概念:Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。 使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。 应用:高阶函数 新模块:import time time.time()获取当前时间戳 解释:def func(*args,**kw) *args是非关键字参数表示迭代器和位置参数,用于元组,**kw是关键字参数表示字典和键值对,用于字典。注意*args必须在**kw前面,否则报异常
    查看全部
  • capitalize() 首字母大写,其余全部小写 upper() 全转换成大写 lower() 全转换成小写 title() 标题首字大写,如"i love python".title() "I love python"
    查看全部
  • map(f(x),L) 对L里的每一个元素进行f(x)处理 不对原L进行改变,返回一个新的L 也可以对原L进行转换,只需要传入转换函数。
    查看全部
  • math.sqrt(x):计算x的算术平方根
    查看全部

举报

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

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