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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • class Person(object): __count = 0 def __init__(self, name): Person.__count = Person.__count + 1 self.name = name print Person.__count p1 = Person('Bob') p2 = Person('Alice') try: print Person.__count except: print 'AttributeError' #为什么里面能显示,而外面不能呢? #因为__count只能内部访问,不能被外部方位。。。
    查看全部
  • 注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。举例如下:
    查看全部
    1 采集 收起 来源:python中闭包

    2018-03-06

  • filter() 接收的函数必须判断出一个数的平方根是否是整数,而 math.sqrt()返回结果是浮点数。 参考代码: import math def is_sqr(x): r = int(math.sqrt(x)) return r*r==x print filter(is_sqr, range(1, 101))
    查看全部
  • 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问
    查看全部
  • class Person(object): count = 0 def __init__(self, name): Person.count = Person.count + 1 self.name = name p1 = Person('Bob') print Person.count p2 = Person('Alice') print Person.count p3 = Person('Tim') print Person.count #创建一个对象相当于调用一次方法函数 #所以在函数中变量+1即可
    查看全部
  • 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 : print 'AttributeError' #出错用try,try的用法
    查看全部
  • ,对象对类属性的修改不影响类本身的类属性,只影响对象拷贝的那一份类属性
    查看全部
  • class Person(object): def __init__(self, name, sex, birth, **kw): self.name = name self.sex = sex self.birth = birth for k , v in kw.iteritems(): setattr(self, k, v) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name print xiaoming.job #kw可以就收任何参数 #值(s='aa'的类似类型)会被函数理解为dict('s':'aa') #setattr(object, name, values) 给对象的属性赋值,若属性不存在,先创建再赋值。
    查看全部
  • class Person(object): pass p1 = Person() p1.name = 'Bart' p2 = Person() p2.name = 'Adam' p3 = Person() p3.name = 'Lisa' L1 = [p1, p2, p3] L2 = sorted(L1, lambda p1, p2: cmp(p1.name, p2.name)) print L2[0].name print L2[1].name print L2[2].name #注意一下排序函数sorted以及匿名函数的用法
    查看全部
  • class Person(object): pass xiaoming = Person() xiaohong = Person() print xiaoming print xiaohong print xiaoming == xiaohong 结果 <__main__.Person object at 0x7f51349ef450> <__main__.Person object at 0x7f513492ead0> False 注 == 可以写成 is
    查看全部
  • **kw是关键字参数,用于字典 iteritems()用于字典kw的遍历 setattr(self, k, v)就等价于self.k = v 综上就是,遍历dict kw 中的属性,给每个属性设置了属性值
    查看全部
  • map()接收一个函数f和一个list,并通过函数f依次作用在list的每个元素,得到一个新的list并返回
    查看全部
  • try: print p.__score except: print 'attributeerror'
    查看全部
  • 给对象的属性赋值,若属性不存在,先创建再赋值。
    查看全部
  • from __future__ import unicode_literals s = 'am I an unicode?' print isinstance(s, unicode) #__future__ 神奇的未来功能
    查看全部

举报

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

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