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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • Python中的高阶函数sort(list) 对list进行升序排序 sort(list, cmp_method)可以定义一个cmp_method对list以自定义的顺序进行排序
    查看全部
  • 1、Python的高阶函数filter(f, list): 返回list中通过函数f判断为true的list: 2、另外还有一个函数:str.strip(rm): 删除 s 字符串中开头、结尾处的 rm 序列的字符。 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' '),如下: ' 123'.strip()返回'123' '\t\t123\r\n'.strip()返回'123'
    查看全部
  • Python中的又一个高阶函数: reduce(f, list):reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值 另外,reduce(f, list)与map(f, list)不同的是,reduce还可以接受第三个可选参数,作为计算的初始值
    查看全部
  • 我在Python中接触到的第一个高阶函数: map(f, list): 它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回 注意:map()函数不改变原有的 list,而是返回一个新的 list。
    查看全部
  • python中,变量还可以指向函数,即可以把函数赋给一个变量 将一个函数作为参数的函数,叫做高阶函数
    查看全部
  • 类方法 class Person(object): count = 0 @classmethod def how_many(cls): return cls.count 类方法的第一个参数将传入类本身,通常将参数名命名为 cls
    查看全部
  • 因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法 p1.get_grade = types.MethodType(fn_get_grade, p1, Person) 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。 ypes.MethodType,它接受三个参数,第一,你要绑定的函数,第二,对象,第三,绑定的类 方法和函数的区别 方法是在类的内部定义的,只能通过实例化之后使用;而函数是在程序内定义的,可以不必实例化,直接用。举个例子,如果有个方法和函数都叫func,方法的调用方法必须是a.func()(其中,a为类的实例);函数的调用方法为func() print p1.get_grade() 这里其实是传入了p1作为self参数的,只是不是显式传入。 而没有括号只是 p1.get_grade 的话就只是一个函数名了,只代表一个函数 lambda: 'A'等价于return'A',相当于一个函数f,那么f()='A'.因此,p1.get_grade=f,p1.get_grade()=f() 就是这个意思,但没有说全 p1.get_grade是属性,只不过这里的属性是一个函数对象,即f p1.get_grade()是方法,前面的p1就是调用这个方法的对象,即实例,整句来说就是实例方法
    查看全部
  • 实例的方法就是在类中定义的函数,它的第一个参数永远是 self getter: def get_name(self): return self.__name
    查看全部
  • 函数其实是一个对象 所有的函数都是可调用对象。 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。 def __call__(self, friend): print 'My name is %s...' % self.name print 'My friend is %s...' % friend p = Person('Bob', 'male') p('Tim') Python中函数也是对象,对象和函数的区别并不显著
    查看全部
    0 采集 收起 来源:python中 __call__

    2017-07-16

  • 由于Python是动态语言,任何实例在运行期都可以动态地添加属性。 要限制添加的属性可以利用Python的一个特殊的__slots__来实现。 __slots__是指一个类允许的属性列表 __slots__ = ('name', 'gender', 'score') __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存。
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-07-16

  • 实例不能修改类属性,而是给实例添加一个同名的实例属性 实例属性的优先级比类属性高,所以重名时会屏蔽掉类属性
    查看全部
  • 类属性 实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。 定义 class Person(object): address = 'Earth' def __init__(self, name): self.name = name 不需要创建实例,就可以直接访问 print Person.address 所有实例都可以访问到它所属的类的属性 p1 = Person('Bob') print p1.address 类属性也是可以动态添加和修改的 Person.address = 'China' 可在构造器__init__中修改类属性,可用来计数等
    查看全部
  • 直接给属性赋值无法检查分数的有效性 使用 get/set 方法来封装对一个属性的访问 @property def score(self): return self.__score @score.setter def score(self, score): if score < 0 or score > 100: raise ValueError('invalid score') self.__score = score
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • __xxx__:预定义的特殊属性,可以被外部访问 __xxx:私有属性,只能在类中访问不能被外部访问,不可以在子类中使用 _xxx:可以被外部访问,但是,按照习惯,他们不应该被外部访问。可以在子类中使用。
    查看全部
  • 要把 Rational 转为 int,应该使用 r = Rational(12, 5) n = int(r) 要让int()函数正常工作,只需要实现特殊方法__int__() def __int__(self): return self.p // self.q 同理,要让float()函数正常工作,只需要实现特殊方法__float__()。
    查看全部

举报

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

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