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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • ''' def count(): fs = [] for i in range(1, 4): def f (m=i): return m*m fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3() def count(): fs = [] for i in range(1, 4): def f (): return i*i fs.append(f()) return fs f1, f2, f3 = count() print f1, f2, f3 ''' def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2018-03-20

  • 这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)
    查看全部
    0 采集 收起 来源:python中闭包

    2018-03-20

  • class Person(object): def __init__(self, name, score): self.name = name self.__score = score p = Person('Bob', 59) print p.name try: print p.__score except AttributeError: print ('attributeError')
    查看全部
  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子: class Person(object): def __init__(self, name): self.name = name self._title = 'Mr' self.__job = 'Student' p = Person('Bob') print p.name # => Bob print p._title # => Mr print p.__job # => Error Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Person' object has no attribute '__job' 可见,只有以双下划线开头的"__job"不能直接被外部访问。 但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。 以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
    查看全部
  • _init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。 相应地,创建实例时,就必须要提供除 self 以外的参数: xiaoming = Person('Xiao Ming', 'Male', '1991-1-1') xiaohong = Person('Xiao Hong', 'Female', '1992-2-2') 有了__init__()方法,每个Person实例在创建时,都会有 name、gender 和 birth 这3个属性,并且,被赋予不同的属性值,访问属性使用.操作符
    查看全部
  • return float(self.p) / self.q #把一个变量变成float类型就可以了
    查看全部
  • def gcd(a, b): if b == 0: return a return gcd(b, a % b) 求最大公约数
    查看全部
  • class Student(object): def __init__(self, name, score): self.name = name self.score = score def __str__(self): return '(%s: %s)' % (self.name, self.score) __repr__ = __str__ def __cmp__(self, s): if self.name < s.name: return -1 elif self.name > s.name: return 1 else: return 0 def isStudent(x): if isinstance(x,Student): return True else: return False L = [Student('Tim', 99), Student('Bob', 88), 100, 'Hello'] print sorted(filter(isStudent,L))
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2018-03-22

  • 注意: 修改类型应该是 float(self.p)如果写成(float)self.p会报错
    查看全部
  • 如果有: def __str__(self): retun str(self.numbers) __repr__=__str__ 则当程序返回Fib(num)函数时是一个list而不会是地址 要返回长度: def __len__(self): return len(self.numbers)
    查看全部
    0 采集 收起 来源:python中 __len__

    2018-03-20

  • capitalize() 首字母大写,其余全部小写; upper() 全转换成大写; lower() 全转换成小写。
    查看全部
  • **多看
    查看全部
    0 采集 收起 来源:python中闭包

    2018-03-19

  • 面向对象编程:数据封装
    查看全部
  • 类和实例
    查看全部
  • 1.模块的名字就是.py文件的文件名 2.文件多了容易重名,把他们放在不同的包中即可。 包就是文件夹 模块就是文件 怎样区分包和普通目录? :包可以多层,同时必须包含一个名为_init_.python的文件,每层都要
    查看全部

举报

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

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