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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 高阶函数map() 接收一个函数,一个list。两个参数 list中每个元素都与函数进行处理。 str.capitalize()返回一个首字母大写的字符串
    查看全部
  • 高阶函数是 能以参数的形式接收其它函数的函数
    查看全部
  • 对于Person类的定义: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender 希望除了 name和gender 外,可以提供任意额外的关键字参数,并绑定到实例,请修改 Person 的 __init__()定 义,完成该功能。 ?不会了怎么办 传入**kw 即可传入任意数量的参数,并通过 setattr() 绑定属性。 参考代码: class Person(object): def __init__(self, name, gender, **kw): self.name = name self.gender = gender for k, v in kw.iteritems(): setattr(self, k, v) p = Person('Bob', 'Male', age=18, course='Python') print p.age print p.course
    查看全部
  • a,b = a,a+b 等价于 t = a a = b b = t+b
    查看全部
    0 采集 收起 来源:python中 __len__

    2017-12-31

  • 如果list不仅仅包含 Student 类,则 __cmp__ 可能会报错,怎么解决呢? 可以写一个filter函数试试 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__

    2017-12-31

  • **kw是关键字参数,用于字典 iteritems()用于字典kw的遍历 setattr(self, k, v)就等价于self.k = v 综上就是,遍历dict kw 中的属性,给每个属性设置了属性值
    查看全部
  • return (self.name>s.name and 1) or -1 python 不支持?:
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2018-03-22

  • class Person(object): def __init__(self, name, gender, **kw): self.name=name self.gender=gender for k,v in kw.iteritems(): setattr(self,k,v) p = Person('Bob', 'Male', age=18, course='Python') print p.age print p.course **kw是关键字,用于字典,iteritems用于字典kw的遍历 setattr(self,k,v)就等价于self.k=v 综上就是,遍历dict kw 中的属性,给每个属性设置了属性值
    查看全部
  • 其次,可以用 dir() 函数获取变量的所有属性:
    查看全部
  • import types def fn_get_grade(self): if self.score >= 80: return 'A' if self.score >= 60: return 'B' return 'C' class Person(object): def __init__(self, name, score): self.name = name self.score = score p1 = Person('Bob', 90) p1.get_grade = types.MethodType(fn_get_grade, p1, Person) print p1.get_grade() # => A p2 = Person('Alice', 65) print p2.get_grade() # ERROR: AttributeError: 'Person' object has no attribute 'get_grade' # 因为p2实例并没有绑定get_grade 给一个实例动态添加方法并不常见,直接在class中定义要更直观。
    查看全部
  • class C(A, B) def __init__(self, a, b): A.__init__(self, a) B.__init__(self, b) 建议养成习惯,不要使用super()这个函数,即便是单继承,也使用上面的方式
    查看全部
  • p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。 因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法:
    查看全部
  • 在类体中定义函数时,注意要传入self才能访问类里的变量
    查看全部
    0 采集 收起 来源:python中多态

    2017-12-30

  • lambda: 'A'等价于return'A',相当于一个函数f,那么f()='A'.因此,p1.get_grade=f,p1.get_grade()=f() 就是这个意思,但没有说全 p1.get_grade是属性,只不过这里的属性是一个函数对象,即f p1.get_grade()是方法,前面的p1就是调用这个方法的对象,即实例,整句来说就是实例方法
    查看全部
  • 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'
    查看全部

举报

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

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