摘要: lambda用于创建匿名函数,下面两种函数定义方式等价。 立刻执行的匿名函数 输出结果 匿名函数实现闭包 输出结果 阅读全文
posted @ 2019-06-11 18:42 luoheng 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 在作用域与名字空间提到,python是静态作用域,变量定义的位置决定了变量作用的范围。变量沿着local,global,builtins的路径搜索,直觉上就是从里到外搜索变量,这称为最内嵌套作用域规则。 从里到外的搜索 输出结果 最内嵌套作用域规则有一个神奇的特性,它对local变量的搜索只依赖于静 阅读全文
posted @ 2019-06-11 16:20 luoheng 阅读(212) 评论(0) 推荐(0) 编辑
摘要: for循环 在上述for循环中,不断地将s中的值赋值给i,然后打印出来。这种只针对s中元素的循环称为对s的迭代,能够迭代的s称为可迭代的。 python为了实现for循环,需要迭代的对象实现迭代协议或序列协议,以获取一个迭代器。下面只讨论迭代协议,即实现一个预定义的方法: for在对对象进行迭代时, 阅读全文
posted @ 2019-06-10 21:51 luoheng 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 实例通常能够调用类的属性,但是有些属性是类专有的,实例无法调用。 实例调用方法时查找属性时,首先在自己的__dict__中找,找不到去类中找,在类中能够找到的属性都位于dir(cls)中,如果类的某些属性不在dir(cls)中,那么实例无法访问。 阅读全文
posted @ 2019-06-10 20:29 luoheng 阅读(187) 评论(0) 推荐(0) 编辑
摘要: Python具有静态作用域,变量的作用域由它定义的位置决定,而与调用的位置无关。 第一行的a的作用域是全局作用域,作用于定义位置后面的所有位置。 第四行的a的作用域是局部作用域,作用于f函数里。 Python能够形成局部作用域的只有函数与类,其他语句不形成局部作用域。 函数与类的局部作用域 输出结果 阅读全文
posted @ 2019-06-10 20:14 luoheng 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 使用实例引用类的属性时,会发生动态绑定。即python会在实例每次引用类属性时,将对应的类属性绑定到实例上。 动态绑定的例子: 输出结果: 从上述代码中可以看到,类方法的变化是实时影响实例对方法的调用的,这说明python是在实例调用方法的过程中动态地查找类方法。 动态绑定的代价: 上图两个循环中, 阅读全文
posted @ 2019-06-07 23:58 luoheng 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 类属性只有类及其实例能够访问,可以理解为一个独立的命名空间。 Python中类属性的引用方式有两种: 1. 通过类的实例进行属性引用,称为绑定方法(bound method),可以理解为方法与实例绑定在一起。 2. 通过类进行属性引用,称为非绑定方法(unbound method),方法没有与实例绑 阅读全文
posted @ 2019-06-07 23:30 luoheng 阅读(1807) 评论(0) 推荐(0) 编辑
摘要: 实例是具象化的类,它可以作为类访问所有静态绑定到类上的属性,包括类变量与方法,也可以作为实例访问动态绑定到实例上的属性。 实例1: 输出结果: test1中演示了实例对类变量的访问与修改,从输出结果可以看到,类变量work和kind的列表被修改了,而another的值没有发生变化,说明如果类变量是可 阅读全文
posted @ 2019-06-07 19:03 luoheng 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 在Python中,生成器和函数很像,都是在运行的过程中才会去确定各种变量的值,所以在很多情况下,会导致各种各样的问题。 在Python中,生成器和函数很像,都是在运行的过程中才会去确定各种变量的值,所以在很多情况下,会导致各种各样的问题。 输出结果为: 输出结果为: 上述代码中,x_filter是基 阅读全文
posted @ 2019-06-07 13:22 luoheng 阅读(151) 评论(0) 推荐(0) 编辑
摘要: is用来判断两个对象是不是同一个对象,通过id()函数取对象地址进行判断。python会缓存一些小的整数,以及只包含字母数字以及下划线的字符串。所以在对于这些值的时候,is判断为True。 is用来判断两个对象是不是同一个对象,通过id()函数取对象地址进行判断。python会缓存一些小的整数,以及 阅读全文
posted @ 2019-06-07 13:20 luoheng 阅读(397) 评论(0) 推荐(0) 编辑