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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 写装饰器的时候,def 跟return 是对应的,def什么就返回什么(格式上是水平对齐的),然后,r的调用一定是在两个t1,t2 中间,这样,t2 才是经过了调用原参数之后的时间。 (*args,**kw)就只是为了让装饰器增加对多参数的支持
    查看全部
  • import math def is_sqr(x): return math.sqrt(x)%1 == 0 print filter(is_sqr, range(1, 101))
    查看全部
  • 继承一个类 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender 定义Student类时,只需要把额外的属性加上,例如score: class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score 一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。 函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。
    查看全部
  • 一个.py 文件就是一个模块
    查看全部
  • performance(f) 这里的f 是指向@performance里面的factorial()的<br> fn()代表定义的修改过的f()函数(同时也是为了增加多参数支持),其中包含原函数,用r来调用了一次r=f(*args, **kw),f.__name__也调用了原函数f(),并且把它给返回了return r<br> t1,t2,和print 这几句就是修改原函数f()所增加的部分。
    查看全部
  • 方法:问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可.
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-15

  • 闭包还不是很理解 http://www.cnblogs.com/ma6174/archive/2013/04/15/3022548.html
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-15

  • 第一个score(self)是get方法,用@property装饰,第二个score(self, score)是set方法,用@score.setter装饰,@score.setter是前一个@property装饰后的副产品。现在,就可以像使用属性一样设置score了 @score.set 不能忘记 。先用@property 然后引出@score.set. @score.set是第一个装饰器引出的副产品。 @property 是get 方法,副产品score.set是set方法.两个函数名都一样,都是def score。只不过第一个是def score(self),第二个是def score(self, score) 最后的return,变成了raise. raise在python中的应用是抛出一个自定义异常,异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类.定义完set函数,后记得定义self.__score = score.是self.__score而不是self.score,要和init中的定义相符合 s.score = 个数字来赋值,然后才能打印调用。不能直接s.score()直接给数字 @property后先是get属性,然后才是@~.setter设置属性 下面的函数都要出现self.__score 以和上面的主函数想适应 除了setter方法需要__score,其他都可以不带__
    查看全部
    0 采集 收起 来源:python中 @property

    2016-05-15

  • 变量可以指向函数,函数名其实就是指向函数的变量
    查看全部
  • def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum 注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-15

  • reduce在py3上需要form functools import reduce reduce 可以接收第三个参数,第三个参数的含义就是:如果默认,就从列表的第一个值开始,如果有定义的参数就从定义的参数开始
    查看全部
  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。
    查看全部
  • def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g fs.append(f(i)) return fs
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-15

  • x=f() 表示x 指向函数 当x()的时候才是指向这个函数的值,而x就只会显示一个函数,不是结果
    查看全部
  • 我们在函数 f 内部又定义了一个函数 g。由于函数 g 也是一个对象,函数名 g 就是指向函数 g 的变量,所以,最外层函数 f 可以返回变量 g,也就是函数 g 本身。
    查看全部

举报

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

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