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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • def count():

       fs = []

       for i in range(1, 4):

           def f(i):

               return lambda : i*i

           fs.append(f(i))

       return fs

    f1, f2, f3 = count()

    print(f1(), f2(), f3())


    查看全部
    0 采集 收起 来源:python中闭包

    2018-06-17

  • def format_name(s):

        return s.title()

    print map(format_name, ['adam', 'LISA', 'barT'])


    查看全部
  • def calc_prod(lst):
        def chen():
            def c(x,y):
                return x*y
            return reduce(c,lst)
        return chen
    f = calc_prod([1, 2, 3, 4])
    print f()


    使用reduce 传入函数及列表的方式,计算列表乘积后通过calc_prod函数返回chen这个函数的结果

    查看全部
  • Person是Student的父类,Student可以继承Person的属性和方法。在我的理解中,Object就是为了保证类这个格式的统一性,Object的相当于Person的父类,但这个父类实际是不存在的,就好比子类有父类,父类还有父类,父类的父类还有父类,无穷尽的,然后就规定到了终极父类Object...

    查看全部
  • super(Student,self).__init__(gender,age)
    #从父类继承,super(子类名称,self).__init__(父类方法/函数)(gender,age)(想要继承的属性)

    class 子类名称(父类名称):

        def __init__(self):

            super(子类名称, self).__init__()

    查看全部
  • count前有__,说明是私有属性,只能在class内部使用self.__count调用

    用了@classmethod后,how__many()变为类方法,传入的是类本身,所以cls相当于Person,cls.count相当于Person.count

    作者就是想说,,私有的属性(双下划线),不能被类外部调用,但是可以通过@classmethod绑定方法调用读取

    查看全部
  • 方法是在类的内部定义的,只能通过实例化之后使用;而函数是在程序内定义的,可以不必实例化,直接用。举个例子,如果有个方法和函数都叫func,方法的调用方法必须是a.func()(其中,a为类的实例);函数的调用方法为func()方法的第一个参数必须是self,但是在调用时这个参数不必传入(python自动传入);函数参数没有此类限制...

    查看全部
  • 题目写错了:“如果将类属性 count 改为私有属性__count,则外部无法读取__score,但可以通过一个类方法获取,请编写类方法获得__count值。”加粗部分应该是__count。此外,如果属性写在类名下面,就是类属性,如果是写在__init__()内,就是实例属性,你可以这样理解,init传入的self就是实例自己,self.__score当然是实例的属性了,而如果要在init内调用类属性__count,就必须用Person.__count。...

    查看全部
  • 虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。

    实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的:


    查看全部
  • 当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。

    不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。


    查看全部
  • class指明了这是个属性函数。即Person的属性

    count= 0 就是这个实例的属性

    def __init__(self, name)是属性可接受的参数个数和名称

    实例属性可同其他元素一样进行操作(加减乘除)等等

    p1 = Person('Bob')

    Bob是Person中的元素由p1指向

    查看全部
  • print p.__score 读取的是私有变量,会抛出异常,需要用try... except...语句 来承接异常。


    查看全部
  • for k, v in kw.items():

                setattr(self, k, v)

    #该函数可用:self.__dict__.update(kw)代替

    赋予self传入的任意元素以属性。

    要定义关键字参数,使用 **kw;

    除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。

    (1)*argv就是可变参数元组(tuple),可以表示任何多个无名参数(tuple)。
    (2)**kwargv则是可变参数字典(dict),可以表示任意多个关键字参数(dict)
    实例的初始属性中接受一个dict,用{key,values}表示,所以job=‘Student’表示为{"jo


    查看全部
  • xiaohong.grade = xiaohong.grade + 1

    实例的属性可以像普通变量一样进行操作。(但进行操作前需要对其定义,否者报错name 'xiaohong' is not defined)

    Python3中排序需要重新学

    L2 = sorted(L1,key=lambda x:x.name)

    查看全部
  • 在定义class,function,method时 可以用pass来完成一个“完整”的定义,无需return,无需表达式等等,解释器将其视为正确的代码块

    按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。

    创建实例使用 类名+(),类似函数调用的形式创建:


    查看全部

举报

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

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