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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • def __cmp__(self, s): if self.score == s.score: return cmp(self.name, s.name) return -cmp(self.score, s.score) 注意,__cmp__是我们自定义的,而cmp( x, y )函数是python本来就有的,可以直接调用,它的默认功能是**cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。**(“从小排到大”),它的返回值是**如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。**,也就是它的返回值是一个整数,即-1,0,1。 L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 99)]#实际上,列表L中存放的是一个个Student类的实例对象p1,p2,p3.比如p1 = Student('Tim', 99) 只是这样写没有显式体现。也可以换一种形象的写法: p1 = Student('Tim', 99) p2 = Student('Bob', 88) L = [p1,p2] 但这样写繁琐,在这里也没必要。 在创建类的实例对象p1 = Student('Tim', 99)时,从类Student中,可以看出,创建对象的同时会自动执行__init__,使对象p1具有了属性name = 'Tim',score = 99,然后又自动执行__str__,返回一个固定格式的语句(Tim: 99), print sorted(L)#调用sorted方法并打印输出结果 **Python的 sorted() 按照默认的比较函数 cmp 排序** ****代码待研究****
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2018-03-22

  • 实例方法传入的参数是self,即实例本身 类方法传入的参数是cls,即类本身
    查看全部
  • isinstance() 判断它是否是某种类型的实例 type() 函数获取变量的类型,它返回一个 Type 对象 dir() 函数获取变量的所有属性 dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数了 >>> getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20: 20
    查看全部
  • ___init___(注意是两个下划线)方法被称为构造器 构造器的第一个参数必须是self(可以使别的名字,但一般用self) 在创建类的实例对象是就会自动执行这些方法 怎么方法让作用于某个对象?最直观的方法就是和参数一起传递进去。 所以在类中定义一个构造器或实例方法是,第一个参数就是self
    查看全部
  • //的意思 相当于floor函数,x=a//b,x取不大于结果的最大整数,-1/2.0=-0.5,-1//2结果取不大于-0.5的最大整数,即-1
    查看全部
  • weibo_聋的全人_0 被自己的无知深深刺痛…… def __cmp__(self, s): if self.score>s.score: return -1 elif self.score<s.score: return 1 elif self.name<s.name: return -1 elif self.nae>s.name: return 1 else: return 0
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2018-03-22

  • filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 def is_odd(x): return x % 2 == 1#注意这里的“==”这是一个布尔类型的判断式,即x % 2 == 1这个式子会自动返回true(奇数)或false(偶数),然后再由is_odd方法中的return再返回,把这个函数放到filter()函数中,filter()函数会用is_odd方法遍历传入的列表list1中的每一个元素,当is_odd方法返回true时,filter()函数就会采纳这个元素,放入另一个新的列表list2中,当list1遍历完成后,filter()函数返回一个新的列表list2,注意在程序运行时,这个list2需要通过print语句才能输出,从而被我们看到
    查看全部
  • lifelegendc 如果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-08-11

  • __init__相当于构造函数?默认为private属性?
    查看全部
  • self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。 self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗,不要搞另类,大家会不明白的。
    查看全部
  • 函数和方法定义是一样的,在本节中之所以函数调用不需要传入self ,而方法需要,是因为函数不是依附类而在,而方法是在类中定义的
    查看全部
  • class 中定义的实例方法其实也是属性,它实际上是一个函数对象 p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数。p1.get_grade() 才是方法调用。
    查看全部
  • __init__(self, name)其实也可看做是一个特殊的实例方法。 调用实例方法必须在实例上调用 如果外部需要访问私有属性,可以通过方法调用获得
    查看全部
  • def __str__(self): return '(Student:%s,%s,%s)'%(self.name,self.gender,self.score) '我的名字叫: %s ,我的年龄是 %s' % ('雨易宇',26) 的输出就是 我的名字叫雨易宇,我的年龄是26
    查看全部
  • p1.address = 'China'并没有改变 Person 的 address,而是给 p1这个实例绑定了实例属性address ,对p1来说,它有一个实例属性address(值是'China'),而它所属的类Person也有一个类属性address(值是earth)。 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。 (访问p1.address时优先查找实例属性,没有再查找类属性)
    查看全部

举报

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

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