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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。举例如下: # 希望一次返回3个函数,分别计算1x1,2x2,3x3: def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 你可能认为调用f1(),f2()和f3()结果应该是1,4,9,但实际结果全部都是 9(请自己动手验证)。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-01

  • class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score def __str__(self): return '<Student: %s, %s, %s>' % (self.name, self.gender, self.score) s = Student('Bob', 'male', 88) print(s)
    查看全部
  • def gcd(a, b): if b == 0: return a return gcd(b, a % b) # a % b求余数
    查看全部
  • def gcd(a, b): if b == 0: return a return gcd(b, a % b)
    查看全部
  • class Fib(object): def __init__(self, num): self.num=num x=0 y=1 s=1 L=[0,1] n=1 while n < self.num-1: x=x+y y=s s=x L.append(x) n=n+1 self.con=L def __str__(self): return str(self.con) #__repr__ = __str__ def __len__(self): return len(self.con) f = Fib(10) print f print len(f)
    查看全部
    0 采集 收起 来源:python中 __len__

    2018-03-22

  • 类的三大特性
    查看全部
  • s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
    查看全部
  • 动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。like a--像一个
    查看全部
    0 采集 收起 来源:python中多态

    2017-05-31

  • 上一个小结总结的规律就在这一节,不过有新收获: p1.address = 'China'并没有改变 Person 的 address,而是给 p1这个实例绑定了实例属性address ,对p1来说,它有一个实例属性address(值是'China'),而它所属的类Person也有一个类属性address,对于p1来说,它存在一个类属性和一个实例属性的名称都是address. 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。 del p1.address删除了实例属性后就可以访问类属性了。 因此: 千万不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。
    查看全部
  • Python中的类属性类似与JAVA中的类属性,但是存在不同点: JAVA中的类属性从属于类,每一个实例变量都拥有这个属性,并且公用同一块内存空间,这导致当通过类名或者实例引用修改了类属性的值之后那么访问的结果都是最新的值,这种影响是双向的; 但是对于Python来算,类属性从属于类这是一致的,也可以通过类名来访问类属性,但是在修改后的结果和JAVA不同,通过类名来修改类属性的值这种方式的修改会导致所有的实例引用访问的值是最新的值(修改可见),但是如果是通过某一个实例引用来修改类属性的值,那么影响的仅仅是该实例本身,不会影响其他实例,更不会影响类名访问结果。
    查看全部
  • def add(x,y,f): return f(x)+f(y) add(5,4,math.sqrt)
    查看全部
  • python中继承一个类 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__()中将隐式传递,不需要写出(也不能写)
    查看全部
  • python之使用__future__ Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。 要在Python 2.7中引入3.x的除法规则,导入__future__的division: >>> from __future__ import division >>> print 10 / 3 3.3333333333333335 当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。
    查看全部
  • 高阶函数3: 前提介绍:upper()将字符串变大写,lower()将字符串变小写,capitalize() 首字母大写,其余全部小写,title() 标题首字大写,如"i love python".title() "I Love Python" 例: def format_name(s): return str(s)[0].upper()+str(s)[1:].lower() print map(format_name, ['adam', 'LISA', 'barT']) >>> ['Adam', 'Lisa', 'Bart'] #输出结果 代码解析:str(s)[0].upper():将字符s第一位转化为大写,str(s)[1:].lower()将字符第二位到结尾所有转化为小写。 实验中遇到小问题 def format_name(s): return [str(s)[0].upper()+str(s)[1:].lower()] print map(format_name, ['adam', 'LISA', 'barT']) >>>[['Adam'], ['Lisa'], ['Bart']] #由于return中带有[],则每个元素带有[] 方法二: def format_name(s): return s.capitalize() print map(format_name, ['adam', 'LISA', 'barT']) 方法三: def format_name(s): return s.title() print map(format_name, ['adam', 'LISA', 'barT'])
    查看全部
  • python中动态导入模块 利用ImportError错误,我们经常在Python中动态导入模块: try: from cStringIO import StringIO except ImportError: from StringIO import StringIO 上述代码先尝试从cStringIO导入,如果失败了(比如cStringIO没有被安装),再尝试从StringIO导入。这样,如果cStringIO模块存在,则我们将获得更快的运行速度,如果cStringIO不存在,则顶多代码运行速度会变慢,但不会影响代码的正常执行。
    查看全部

举报

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

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