上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 多任务可以由多进程完成,也可以由一个进程内的多线程完成。 我们前面提到了进程是由若干线程组成的,一个进程至少有一个线程。 由于线程是操作系统直接支持的执行单元,因此,高级语言通常都内置多线程的支持,Python也不例外,并且,Python的线程是真正的Posix Thread,而不是模拟出来的线程。 阅读全文
posted @ 2020-12-07 21:38 HK牛牛 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。 Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子 阅读全文
posted @ 2020-12-07 21:30 HK牛牛 阅读(112) 评论(0) 推荐(0) 编辑
摘要: Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。 在介绍函数参数的时候,我们讲到,通过设定参数的默认值,可以降低函数调用的难度。而偏函数也可以做到这一点。举例如下: int()函数可以把 阅读全文
posted @ 2020-12-02 08:41 HK牛牛 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。 >>> def now(): ... print('2020-12-2') ... >>> f = now >>> f() 2020-12-2 函数对象有一个__name__属性,可以拿到函数的名字: >>> now 阅读全文
posted @ 2020-12-02 08:38 HK牛牛 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。 在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数: >>> list(map(lambda x: x * x, [1, 2, 阅读全文
posted @ 2020-12-02 08:34 HK牛牛 阅读(123) 评论(0) 推荐(0) 编辑
摘要: #函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 我们来实现一个可变参数的求和。通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax 但是,如果不需要立 阅读全文
posted @ 2020-12-02 08:32 HK牛牛 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 排序算法 排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。 Python内置的sorted()函数就可以对list进行 阅读全文
posted @ 2020-12-02 08:30 HK牛牛 阅读(58) 评论(0) 推荐(0) 编辑
摘要: Python内建的filter()函数用于过滤序列。 和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。 例如,在一个list中,删掉偶数,只保留奇数,可以这 阅读全文
posted @ 2020-12-02 08:28 HK牛牛 阅读(80) 评论(0) 推荐(0) 编辑
摘要: Python内建了map()和reduce()函数。 如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Processing on Large Clusters”,你就能大概明白map/reduce的概念。 我们先看map。map()函数接收两个参数, 阅读全文
posted @ 2020-12-02 08:24 HK牛牛 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。 阅读全文
posted @ 2020-12-02 08:01 HK牛牛 阅读(69) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页