上一页 1 ··· 17 18 19 20 21
摘要: yield有两个意思,一个是生产,一个是退让,对于Python生成器的yield来说,这两个含义都成立。yield这个关键字,既可以在生成器中产生一个值,传输给调用方,同时也可以从调用方那获取一个值,在生成器内部使用。此外,yield还会作出让步,暂停生成器,让调用方继续工作,直到调用方需要下一个数 阅读全文
posted @ 2018-05-20 22:43 北洛 阅读(7194) 评论(0) 推荐(1) 编辑
摘要: 装饰器 Python中装饰器的本质实际上是一个函数,在一些场景中,我们可能面临这切面编程的需求,例如:计算一个函数执行的时间,于是我们需要在函数执行之前和执行之后捕捉时间,再把两个时间相减,得到函数的执行时间,又比如在执行某些函数的时候,需要在执行之前在日志上打印开始执行,执行完毕后再打印执行完毕, 阅读全文
posted @ 2018-02-26 14:22 北洛 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 参数类型 Python函数的参数类型一共有五种,分别是: POSITIONAL_OR_KEYWORD(位置参数或关键字参数) VAR_POSITIONAL(可变参数) KEYWORD_ONLY(关键字参数) VAR_KEYWORD(可变关键字参数) POSITIONAL_ONLY(位置参数) 下面用 阅读全文
posted @ 2018-02-23 19:12 北洛 阅读(19739) 评论(1) 推荐(0) 编辑
摘要: Python中,(*)会把接收到的参数形成一个元组,而(**)则会把接收到的参数存入一个字典 我们可以看到,foo方法可以接收任意长度的参数,并把它们存入一个元组中 (**)将接收到的参数存入一个字典 (*)和(**)一起使用 name作为foo第一个参数,在调用foo("hello", 1, 2, 阅读全文
posted @ 2018-02-23 13:00 北洛 阅读(25730) 评论(1) 推荐(3) 编辑
摘要: Python中列表(list)的实现其实是一个数组,当要查找某一个元素的时候时间复杂度是O(n),使用list.index()方法,但是随着数据量的上升,list.index()的性能也逐步下降,所以我们需要使用bisect模块来进行二分查找,前提我们的列表是一个有序的列表。 递归二分查找和循环二分 阅读全文
posted @ 2018-02-18 12:49 北洛 阅读(18904) 评论(1) 推荐(3) 编辑
摘要: 在Python里,像字符串(str)、列表(list)、元组(tupple)和这类序列类型都支持切片操作 对对象切片,s是一个字符串,可以通过类似数组索引的方式获取字符串中的字符,同时也可以用s[a:b:c]的形式对s在a和b之间,以c为间隔取值,c的值还可以为负,负值则意味着反向取值 给切片赋值 阅读全文
posted @ 2018-02-14 23:14 北洛 阅读(1735) 评论(0) 推荐(0) 编辑
摘要: Python有一个内置的函数叫repr,它能把一个对象用字符串的形式表达出来以便辨认,这就是“字符串表示形式”。repr就是通过__repr__这个特殊方法来得到一个对象的字符串表示形式。如果没有实现__repr__,当我们再控制台里打印一个变量的实例时,得到的字符串可能会是<__main__.Ob 阅读全文
posted @ 2018-02-14 13:25 北洛 阅读(340) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21