随笔分类 - 小的知识点
摘要:生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。 把list、dict、str等Iterable变成Iterator可以使用iter()函数: 你可能会问,为什么list、dict、str等数据类型不是Iterator? 这是因为Pytho
阅读全文
摘要:要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator: 创建L和g的区别仅在于最外层的[]和(),L是一个list,而g是一个generator。
阅读全文
摘要:如果要对list实现类似Java那样的下标循环怎么办?Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:
阅读全文
摘要:默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()
阅读全文
摘要:python去除字符串中间空格的方法 1、使用字符串函数replace 看上这种方法真的是很笨。 2、使用字符串函数split 3、使用正则表达式
阅读全文
摘要:可变参数 在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。 我们以数学题为例子,给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……。 要定义出这个函数,我们必须确定输入的参数。由于参数个数不确定,我们首
阅读全文
摘要:要计算str包含多少个字符,可以用len()函数: len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数: 可见,1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。
阅读全文
摘要:Ctrl+u:向文件首翻半屏; Ctrl+d:向文件尾翻半屏; Ctrl+f:向文件尾翻一屏; Ctrl+b:向文件首翻一屏; Esc:从编辑模式切换到命令模式; ZZ:命令模式下保存当前文件所做的修改后退出vi; :行号:光标跳转到指定行的行首; :$:光标跳转到最后一行的行首; x或X:删除一个
阅读全文
摘要:from enum import Enum, unique @unique class Weekday(Enum): Sun = 0 # Sun的value被设定为0 Mon = 1 Tue = 2 Wed = 3 Thu = 4 Fri = 5 Sat = 6 >>> day1 = Weekday
阅读全文
摘要:为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()方法里,就可以检查参数: 但是,上面的调用方法又略显复杂,没有直接用属性这么直接简单。 有没有既能检查参数,又可以用类似属性这样简单的方式来访问类的变
阅读全文
摘要:class Student(object): __slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称 >>> s = Student() # 创建新的实例 >>> s.name = 'Michael' # 绑定属性'name' >>> s.age = 25 #
阅读全文
摘要:class Student(object): pass >>> s = Student() >>> s.name = 'Michael' # 动态给实例绑定一个属性 >>> print(s.name) Michael >>> def set_age(self, age): # 定义一个函数作为实例方
阅读全文
摘要:面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(obje
阅读全文
摘要:type()可以给出变量、函数(对象)的类型。isinstance()能够给出某一个变量或者函数(对象)是否是某一属性的判断,适用于继承子类也属于父类。dir()能够给出一个函数、变量(对象)的所有属性。
阅读全文
摘要:装饰器 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。 函数对象有一个__name__属性,可以拿到函数的名字: 现在,假设我们要增强now()函数的功能,比如,在函数调用前后自动打印日志,但又不希望修改now()函数的定义,这种在代码运行期间动态增加功能的方式,
阅读全文
摘要:当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。 在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数: 通过对比可以看出,匿名函数lambda x: x * x实际上就是: 关键
阅读全文
摘要:注意到返回的函数在其定义内部引用了局部变量args,所以,当一个函数返回了一个函数后,其内部的局部变量还被新函数引用,所以,闭包用起来简单,实现起来可不容易。 另一个需要注意的问题是,返回的函数并没有立刻执行,而是直到调用了f()才执行。我们来看一个例子:
阅读全文

浙公网安备 33010602011771号