python自学第11天-单线程并发、迭代器,序列化,获取路径
单线程并发 import time
def consumer(name):
print("%s 准备吃包子了"%name)
while True:
baozi=yield#变成一个生成器,遇到yield断点。
print("包子[%s]来了,被[%s]吃了" %(baozi,name))
c=consumer("hunter")
# c.__next__()
# c.send("豆沙") def product(name):
c1=consumer("A")
c2=consumer("B")
c1.__next__()
c2.__next__()
for i in range(10):
time.sleep(1)
print("生产了一个包子,分成了两半")
c1.send(i)
c2.send(i) product("hunter")
1. 可以直接用于for循环的对象就叫可迭代对象。Iterable
isinstance(,Iterable)是否是可以跌代。
2.可以被next()函数调用并不断返回下一个值的对象就叫迭代器。Iterator
isinstance(,Iterator)是否是跌代器。
用iterable变成iterator可以使用iter()函数变成一个迭代器
序列化
import json
info={'name':'hunter','age':'18'}
with open('text.txt','w',encoding='utf-8') as f:
json.dump(info,f)#json 序列化 成文件
反序列化
import json
with open("text.txt",'r',encoding='utf-8') as f:
data=json.load(f)#反序列化
print(data['name'])
获取路径:
import os
import sys
# sys.path.append() Base_Path=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#dirname 只取路径把目录名去掉。 abspath()取出绝对路径 __file__取出相对路径
sys.path.append(Base_Path)#动态加入环境变量。
print(Base_Path) from core import main
main.m()
python自学第11天-单线程并发、迭代器,序列化,获取路径的更多相关文章
- Python 入门基础11 --函数基础4 迭代器、生成器、枚举类型
今日目录: 1.迭代器 2.可迭代对象 3.迭代器对象 4.for循环迭代器 5.生成器 6.枚举对象 一.迭代器: 循环反馈的容器(集合类型) 每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的 ...
- 网络编程socket 结合IO多路复用select; epool机制分别实现单线程并发TCP服务器
select版-TCP服务器 1. select 原理 在多路复用的模型中,比较常用的有select模型和epoll模型.这两个都是系统接口,由操作系统提供.当然,Python的select模块进行了 ...
- python自学笔记
python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...
- python 全栈开发,Day43(python全栈11期月考题)
python全栈11期月考题 1.常用字符串格式化有哪些?并说明他们的区别 2.请手写一个单例模式(面试题) 3.利用 python 打印前一天的本地时间,格式为‘2018-01-30’(面试题) 4 ...
- python初步学习-生成式、生成器、迭代器、装饰器
生成式 列表生成式 字典生成式 集合生成式 嵌套列表生成式 列表生成式 列表生成式是python受欢迎的语法之一,通过一句简洁的语法就可以对一组元素进行过滤,还可以对得到的元素进行转换处理.语法格式为 ...
- Python - 自学django,上线一套资产管理系统
一.概述 终于把公司的资产管理网站写完,并通过测试,然后上线.期间包括看视频学习.自己写前后端代码,用时两个多月.现将一些体会记录下来,希望能帮到想学django做web开发的人.大牛可以不用看了,小 ...
- [Python自学] day-19 (2) (Django-ORM)
一.ORM的分类 ORM一般分为两类: 1.DB first:先在DB中创建数据库.表结构,然后自动生成代码中的类.在后续操作中直接在代码中操作相应的类即可. 2.Code first:直接在代码中实 ...
- [Python自学] day-19 (1) (FBV和CBV、路由系统)
一.获取表单提交的数据 在 [Python自学] day-18 (2) (MTV架构.Django框架)中,我们使用过以下方式来获取表单数据: user = request.POST.get('use ...
- 8、如何实现可迭代对象和迭代器对象 9、如何使用生成器函数实现可迭代对象 10、如何进行反向迭代以及如何实现反向迭代 11、如何对迭代器做切片操作 12、如何在一个for语句中迭代多个可迭代对象
8.如何实现可迭代对象和迭代器对象 PS:注意重载Iterator方法的时候,需要和原来的方法名一样,否则创建实例时会报错 from collections import Iterator,Itera ...
随机推荐
- Kubernetes与容器设计模式
目录贴:Kubernetes学习系列 在程序设计领域,面向对象设计和面向对象语言是大家最为熟悉和强大的工具,而面向对象除了其强大的核心特性之外,还有人们通过实践总结出来的一系列设计模式,可以用来解决实 ...
- 反向代理&集线器和交换机的区别&广播地址&seq与ack的区别
反向代理服务器: 当一个代理服务器能够代理外部主机访问内部网络时,这种代理服务的方式称为反向代理服务,该服务器被称为反向代理服务器. 集线器与交换机的区别: 集线器和交换机都是起到端口转发的作用,不同 ...
- 记账本微信小程序开发五
准备做首页和分页 准备一些图标的图,用ps或者用创客贴都欧克 建图片的文件夹和首页的编辑
- Python基础(六)_全局变量声明、可变参数、关键字参数
1. global声明全局变量 #声明name这个变量为全局变量,只是写在函数里面 #写代码时,尽量不要用全局变量,会一直占用内存. ------->{'name':'abc','s ...
- 51Nod 1058 N的阶乘的长度
输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Out ...
- too many open files问题
linux环境下,程序运行时,出现了too many open files的错误. 通过名字就能看出来,是打开了太多的文件,超过了系统限制. ulimit -a 通过这个命令可以查看当前系统设置的最大 ...
- Centosphp安装cassandra扩展
一.准备 当前php版本PHP Version 5.5.10,首先去http://pecl.php.net/package/cassandra,找到对应的php版本 二.下载安装 # wget htt ...
- JavaScript Dom 查找
JavaScript Dom 查找 一.直接查找 获取单个元素 document.getElementById('i1') 获取多个元素(列表数组) document.getElementsByTag ...
- ant_<target>标签含义与使用
<target>标记目标 目标是一个或多个任务的集合,任务是一段可执行的代码:构建文件中包含一个项目,在项目内部声明了所有目标: <target name = "run&q ...
- HTML基础【2】:基础标签
H系列标签(H1 ~ H6) 作用: 用于给文本添加标题语义 格式: <h1>xxxxxx</h1> 注意点 H 标签是用来给文本添加标题语义的,而不是用来修改文本的样式的 H ...