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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 数据封装??

    查看全部
  • __init__(self, name)其实也可看做是一个特殊的实例方法。

    这句话我不认同,因为这个方法没有返回值,我认为不应该当做一个函数看待。

    查看全部
  • 强调一个实例/类的私有属性无法从外部访问,但是,从类的内部是可以访问的。

    强调实例的方法就是在类中定义的函数。

    查看全部
  • https://img1.sycdn.imooc.com//5c480717000197ec01560094.jpg

    高阶函数的概念

    查看全部
  • #摘自问答,加深理解

    里面的print Person.__count是把运行的结果打印出来,而不是说外部的print可以访问,你去掉外部的print 就可以看到运行的结果了,不去掉也能看到结果,但是会弹出一个对话。

    打印是因为,每次创建一个实例执行一次类里面的__init__()的print Person.__count,但是如果从外面访问Person.__count是访问不了的。(提个问题:究竟如何理解类的本质呢?形式像函数,却没有最本质的返回值,即没有映射关系。)

    查看全部
  • try:

        print Person.__count

    except AttributeError:

        print 'attributeerror'


    查看全部
  • 一侧双下划线表示类内部变量,不能被外部访问,但可以在内部默认打印出来,


    try  except:还是会运行类,同时如果出现某错误还要打印某错误出来,

    #捕捉错误,同时不妨碍类或者包的导入及运行。

    查看全部
  • 原因是 p1.address = 'China'并没有改变 Person 的 address,而是给 p1这个实例绑定了实例属性address ,对p1来说,它有一个实例属性address(值是'China'),而它所属的类Person也有一个类属性address,所以:

    访问 p1.address 时,优先查找实例属性,返回'China'。

    访问 p2.address 时,p2没有实例属性address,但是有类属性address,因此返回'Earth'。

    可见,当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。


    查看全部
  • 引用class中无论是类还是实例的属性时,必须带句号。

    查看全部
  • class 中定义def 时 应该返回None 而不能取其他数值类型。

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

                setattr(self, k, v)

    **kw表示可以任意输入参数和对应的值,这些键值对被组织成字典dict,for k,v in kw.iteritems()表示对该字典的键值对进行迭代(k获得键,v获得值), iteritems()这个方法可以一个一个输出字典中的键值对,setattr(self,k,v)表示对实例自身设置属性和对应的值,self表示实例自身,k表示参数,v表示值。

    查看全部
  • *args: 任意数量参数,传递的是一个list

    **kw: 任意数量key-value值,传递的是一个dict

    PS:其实只是`*`和`**`起作用,`*args`和`**kw`是习惯名而已。



    查看全部
  • 但是,考察上一小节定义的 calc_sum 函数:

    def calc_sum(lst):
        def lazy_sum():
            return sum(lst)
        return lazy_sum

    注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。

    像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。

    闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。举例如下:


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

    2019-01-22

  • #try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句

    利用ImportError错误,我们经常在Python中动态导入模块:

        try:

            from cStringIO import StringIO

        except ImportError:

            from StringIO import StringIO

    查看全部
  • 如何区分文件目录和包:

        包中必须包含 __init__.py 这个文件!

    查看全部

举报

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

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