我正在开发

python聊天机器人框架与asyncio.但是我看着

PEP-492,有新的语法,async /等待,最后它被接受.

我喜欢async / await语法,我想使用它.但我担心3.4的兼容性.

如果我在代码中使用新的语法,有人可以在3.4中使用它

例如,我写了一些这样的代码,

import asyncio

class ChatBot:

def __init__(self, loop):

self.loop = loop

async def connect(self):

self.reader, self.writer = await asyncio.open_connect(HOST, PORT, loop=self.loop)

async def read():

return await self.reader.read()

async def run(self):

running = True

while running:

try:

await self.connect()

line = await self.read()

if not line:

continue

await self.parse(line)

except BotInternalError as e:

if e.stop:

running = False

break

except:

pass

async def parse(self, msg):

if msg.startswith('PING'):

self.pong()

elif msg.startswith('ERROR'):

self.error()

else:

await self.some_work(msg)

async def some_work(self, msg):

# some looooooooong works

self.send(msg)

def send(self, msg):

self.writer.write(msg)

比较,我可以使用它与这个源在py35

loop = asyncio.get_event_loop() # I don't know it really needed in py35.

bot = ChatBot(loop)

asyncio.run_until_complete(bot.run())

但是,py34没有等待语法.如果我上传源码在PyPI没有版本约束,有人安装在py34,它会正常工作吗?我该怎么办?

python3.4和3.5的区别_在3.4和3.5之间的python中的协同程序,我如何保持支持的兼容性?...相关推荐

  1. python3.4和3.6的区别_详解Python3.6正式版新特性

    按照Python官网上的计划,Python3.6正式版期望在2016-12-16号发布,也就是这周五.从去年的5月份开始,Python3.6版本就已经动手开发了,期间也断断续续的发布了4个Alpha版 ...

  2. python3.6与3.7的区别_选择 Python3.6 还是 Python 3.7

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 选择 Python3.6 还是 Python 3.7 Python 3.7 已经发布了, 又有新版本玩喽!!但是有选择症的你,怎么办呢?像追剧一样,赶快升 ...

  3. dsp版win10和普通版区别_图文详解win10各个版本之间有什么区别

    win10各个版本之间有什么区别,现在很多网友都更新了windows10系统,他们知道windows10系统有很多种版本,但是不知道win10不同版本区别在于什么地方,针对这样的问题,系统之家小编特地 ...

  4. php和nodejs和java的区别_讨论PHP和Node.js开发之间有什么区别

    在很长一段时刻内,决定在Node.js和PHP之间进行挑选是一件很费事的工作,但关于后端程序员来说,这一直很费事,但它从未影响过开发人员.可是工作很快就发生了改变,现在开发人员有必要挑选其中之一.No ...

  5. sql和python的区别_数据处理简单对比:Excel,SQL,Python

    前言 无论是什么工具,做数据分析的时候一定会涉及到两类工作: 合并多个关联表 做数据透视表 这篇文章简单对比一下Excel.SQL和Python在这两类任务上的实现过程,从而对比其异同. 用到的数据表 ...

  6. python reduce函数怎么用的_我如何仅通过使用reduce函数在python中创建单...

    使用reduce似乎很难实现,因为如果您" reduce"的两个元组都没有相同的字母,那么您将无法计算结果.如何减少('a',1)和('b',1)到可行的结果? 我能做的最好是l ...

  7. python运行系统找不到指定文件_“系统无法找到指定的文件”当调用Python中的subprocess.Popen...

    我试图使用svnmerge.py来合并一些文件.底下它使用python,当我使用它时,我得到一个错误 - "系统找不到指定的文件".工作中的同事正在运行相同版本的svnmerge. ...

  8. linux执行python不打印_在Python中执行shell程序而不打印到屏幕

    有没有一种方法可以让我从Python执行一个shell程序,它将输出打印到屏幕上,然后将它的输出读入变量而不在屏幕上显示任何内容?在 这听起来有点令人困惑,所以也许我可以用一个例子来解释它.在 假设我 ...

  9. python中定义的函数不掉用不会执行_如果出现异常/错误,如何不在python中停止执行其他函数...

    我有一个用python编写的脚本,它的工作方式如下所示.每个函数执行完全不同的任务,彼此不相关.我的问题是,如果函数2()在执行过程中出现问题,那么函数3().函数4().函数5()将不会执行.我知道 ...

最新文章

  1. Linux Tomcat8 启动堆内存溢出
  2. 国庆档票房近50亿创纪录 背后影视股却遭遇集体下跌
  3. Android Architecture Components 系列(五)Room
  4. linux文件管理器thunar,文件管理器:Nautilus,Thunar,PCManFM,Konqueror,Dolphin,Krusader
  5. 华为交换机学习指南基于策略划分VLAN
  6. StyleGAN图像风格转换相关经典论文、项目、数据集等资源整理分享
  7. USACO 2021 December Contest, Bronze
  8. 西游记笔记与想法(2)
  9. 《黄花黄》古诗词引用摘录
  10. 电阻、电容、电感及其阻抗、容抗、感抗概念回顾
  11. 五、NLP聊天语料处理
  12. 微信小程序 使用canvas画圆形倒计时动画
  13. 绝地求生大逃杀地图分析
  14. 键盘对应的ASCⅡ码
  15. 计算摄影:噪声模型与噪声估计
  16. C++中的typeid关键字
  17. [Matlab] 论文画图技巧:预测曲线图
  18. 故障报修系统php,【假期挖坑】PHP综合报修系统 V1.0
  19. 广告深度学习计算:阿里妈妈智能创意服务优化
  20. 数据结构——知识点总结

热门文章

  1. 实践:在运维大数据这事上,Apache Kylin比ELK更擅长?
  2. 智能运维就是由 AI 代替运维人员?
  3. 六问六答理解ForkJoin原理
  4. 基于用户角色的数据库智能监控系统应用场景分析
  5. Extensions in UWP Community Toolkit - ViewExtensions
  6. ls -l的功能是什么linux,Ls - Linux Wiki
  7. linux中切换到上级目录,vsftp中控制用户是否允许切换到上级目录
  8. SpringIOC容器和Bean的配置
  9. Android笔记进程优先级
  10. 长庆企业信息化管理课件_会博通浅谈企业档案管理信息化的必要性和优势