前言
今晚下班后微信收到一跳消息!是前女友的闺蜜发过来的,然后让我自己去猜密码,本来我是不打算理她的!但是她后面说里面有你想不到的福利!这句话对于一枚(lsp)不对一枚宅男程序员没有抵抗力,毕竟我对她映像最深的就是那一双大长腿!穿啥都好看的那种!好了废话不多说,技术时刻来袭!
Python语法
既然本意是学习 Python 编程,那自然是要对本实战应用场景的编码过程遇到的相关语法知识进行学习。
自定义迭代器
迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,迭代器有两个基本的方法:iter() 和 next()。 1、迭代器对象可以使用常规 for 语句进行遍历:
#!/usr/bin/python3
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
for x in it:
print (x, end=" ")
执行以上程序,输出结果如下:
1 2 3 4
2、也可以使用 next() 函数:
#!/usr/bin/python3
import sys # 引入 sys 模块
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
while True:
try:
print (next(it))
except StopIteration:
sys.exit()
执行以上程序,输出结果如下:
3、Python 支持编写 class 来自定义迭代器,如何自定义一个迭代器:
- 在自定义的类中添加了
__iter__
魔法方法可取得迭代器; - 在自定义的类中通过
__next__
魔法方法指出所有的数据。
来看看一个简单的自定义可迭代的类示例:
class TopTen(object):
def __init__(self):
self.num = 1
def __iter__(self):
return self
def __next__(self):
if self.num <= 10:
val = self.num
self.num += 1
return val
else:
raise StopIteration
if __name__ == "__main__":
values = TopTen()
for v in values:
print(v, end=' ')
代码运行效果:
Python多线程
线程是 CPU 分配资源的基本单位,但一个程序开始运行后这个程序就变成了一个进程,而一个进程相当于一个或者多个线程。当没有多线程编程时,一个进程也是一个主线程,但有多线程编程时,一个进程包含多个线程,包括主线程。使用线程可以实现程序的并发,
Python3 线程中常用的两个模块为: (1)_thread; (2)threading (推荐使用) 其中 thread 模块已被废弃,用户可以使用 threading 模块代替。所以在 Python3 中不能再使用 “thread” 模块,为了兼容性,Python3 将 thread 重命名为 “_thread”。
1、函数创建多线程 Python3 中提供了一个内置模块threading.Thread,可以很方便的创建多线程,threading.Thread()一般接收2个参数: 1)线程函数名:要放置线程让其后台执行的函数,有用户自己定义,主要不要加(); 2)线程函数