使用 __future__ 还是 future 来编写兼容 python2 和 python3 的代码更好?

2023-11-30

或者在某些特定情况下,其中一种比另一种更好?

到目前为止,我所收集到的只是 future 仅适用于 >=2.6 或 >=3.3。

我当前的代码非常基本,除了使用打印函数调用之外,在 python2 和 3 上运行相同。然而,随着时间的推移,代码可能会变得更加复杂,我想从一开始就使用正确的方法来编写 python2/3 兼容的代码。


The __future__模块是Python内置的,提供给程序员可以提前使用尚未被视为完整的功能集。虽然有些功能(e.g., from __future__ import print_function)专门用于帮助将 Python 2 程序移植到 Python 3,它还用于尽早访问任何版本的高级功能。

__future__是独一无二的,因为一些进口产品,例如print_function实际上可以改变解释器接受的语法。

python-future是第三方模块,提供兼容性功能的几个模块之一。您还可以看一下six,虽然现在牙齿已经有点长了,并且python-modernize。您很可能会发现您需要同时使用两者__future__ and future一起。

您可能没有考虑过的另一个策略是将源代码转换为 Python 2,这样可以由2to3公用事业。还有一个lib3to2这会以另一种方式翻译,尽管我没有这方面的经验。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 __future__ 还是 future 来编写兼容 python2 和 python3 的代码更好? 的相关文章

  • 同情因子简单关系

    我在 sympy 中有一个简单的因式分解问题 无法解决 我在 sympy 处理相当复杂的积分方面取得了巨大成功 但我对一些简单的事情感到困惑 如何得到 phi 2 2 phi phi 0 phi 0 2 8 因式分解 phi phi 0 2
  • ModuleNotFoundError:没有名为:crispy_forms的模块[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我可以导入 Cripy forms 但是当我运行时python3 manage py runserver 它说没有名为 Cripy
  • 如何编写高效的配对算法?

    我需要一种算法的帮助 该算法可以有效地将人们分组 并确保以前的配对不会重复 例如 假设我们有 10 位候选人 candidates 0 1 2 3 4 5 6 7 8 9 并假设我们有一个先前匹配的字典 这样每个键值对即candidate
  • 01 无效令牌[重复]

    这个问题在这里已经有答案了 嘿 学习 python3有一段时间了 遇到字典和dictionary name get 方法并尝试获取随机键值 问题 data data get key 1 它有效并且返回 1 但如果我使用data get ke
  • 在 Python 中比较日期 - 如何处理时区修饰符

    我正在做Python日期比较 假设我有一个这样的约会 Fri Aug 17 12 34 00 2012 0000 我按以下方式解析它 dt datetime strptime Fri Aug 17 12 34 00 2012 0000 a
  • Python 3.x 中的 PIL ImageTk 等效项

    我正在使用 Tkinter 开发一个应用程序 它使用以下数据库png图标的图像文件 为了在应用程序中使用所述图像 我使用 PIL 打开它们Image open 运行它通过ImageTk PhotoImage函数 然后将其传递给小部件构造函数
  • 检查对象数组中的多个属性匹配

    我有一个对象数组 它们都是相同的对象类型 并且它们有多个属性 有没有办法返回一个较小的对象数组 其中所有属性都与测试用例 字符串匹配 无论该属性类型是什么 使用列表理解all http docs python org 3 library f
  • 获取 zeep.exceptions.ValidationError:缺少与 suds 一起使用的方法的元素

    我正在移植开发的代码suds 0 6到zeep 2 4 0 以前的泡沫代码 client Client WSDLfile proxy proxy faults True config client factory create perUse
  • Selenium 网页抓取与动态内容和隐藏数据表上的美丽汤

    真的需要这个社区的帮助 我正在使用 Selenium 和 Beautiful Soup 对 Python 中的动态内容进行网页抓取 问题是定价数据表无法解析为 Python 即使使用以下代码 html browser execute scr
  • 如何在 Numpy 中实现垃圾收集

    我有一个名为main py 它引用另一个文件Optimisers py它仅具有功能并用于for循环进入main py 这些函数都有不同的优化功能 This Optimisers py然后引用另外两个类似的文件 其中也只有函数 它们位于whi
  • 散景中的时间序列流

    我想在散景中绘制实时时间序列 我只想在每次更新时绘制新的数据点 我怎样才能做到这一点 散景网站上有一个动画情节的示例 但它每次都需要重新绘制整个图片 另外 我正在寻找一个简单的示例 我可以在其中逐点绘制时间序列的实时绘图 散景效果0 11
  • 如何在 Spyder IDE 中安装 Selenium 包

    我刚刚在工作中安装了 Spyder IDE 仅 Spyder 不是整个 Anaconda 并且希望使用 FireFox 自动化我的工作 我的问题是 如何安装 Selenium 软件包 I figured it out Here is ins
  • 写入 UDP 套接字会被阻塞吗?

    如果是的话 在什么条件下 或者 换句话说 在twisted 中运行此代码是否安全 class StatsdClient AbstractStatsdClient def init self host port super StatsdCli
  • 在 groupby 聚合函数中传递参数

    我有我引用的数据框df在代码中 我在每组的多个列上应用聚合函数 我还应用了用户定义的 lambda 函数f4 f5 f6 f7 有些功能非常相似 例如f4 f6 and f7其中只有参数值不同 我可以从以下位置传递这些参数吗字典 d 这样我
  • 通过套接字发送字符串(python)

    我有两个脚本 Server py 和 Client py 我心中有两个目标 能够从客户端一次又一次地向服务器发送数据 能够将数据从服务器发送到客户端 这是我的 Server py import socket serversocket soc
  • tweepy 流到 sqlite 数据库 - 语法错误[重复]

    这个问题在这里已经有答案了 可能的重复 tweepy 流到 sqlite 数据库 语法无效 https stackoverflow com questions 9434205 tweepy stream to sqlite database
  • 如何在 Python 中解析损坏的 XML?

    我无法影响的服务器发送的 XML 非常损坏 具体来说 Unicode WHITE STAR 将被编码为 UTF 8 E2 98 86 然后使用 Latin 1 转换为 HTML 实体表 我得到的是 acirc 98 86 9 个字节 位于声
  • 在 pyhf 中针对小信号模型拟合收敛失败

    这是我们 pyhf 开发团队 最近提出的一个问题 认为很好并且值得分享 因此我们在这里发布了它的修改版本 我正在尝试做一个简单的假设检验pyhf v0 4 0 https pypi org project pyhf 0 4 0 我使用的模型
  • 在没有numpy的情况下在python中分配变量NaN

    大多数语言都有一个 NaN 常量 您可以使用它为变量分配值 NaN python 可以在不使用 numpy 的情况下做到这一点吗 是的 使用math nan https docs python org 3 library math html
  • 如何指定一个变量作为类或类实例的成员变量?

    在最新的 Python 2 7 x 中 给定类定义内的任何成员变量 该成员变量是否始终处于类级别 因为它是由该类的所有实例共享的单个变量 在类的定义中 如何指定 类定义中的哪些成员变量属于该类 因此由该类的所有实例共享 以及 哪些属于该类的

随机推荐

  • 从 UIAlertView 获取文本

    似乎缺少了一些东西 但是下面的代码正在生成nil两者的值title and title1 即使它正确启动正确的警报类型并且不指示任何警告或错误 这种实施可能存在什么问题UIAlertView UIAlertView alert UIAler
  • 使用 MOSS Web 服务的 SharePoint 文档的权限

    我们需要检索对文档具有读取权限的用户组 我们知道文档的 URL 以下权限服务提供具有访问权限的组 但它需要站点 URL 或列表 URL 我们有一个文档 URL 是否有任何其他服务提供文档的权限 或者 如果我们知道文档 URL 是否有办法找到
  • 仅使用标准 java api(缩进和 Doctype 定位)即可漂亮地打印 javax.xml.transform.Transformer 的输出

    使用以下简单代码 package test import java io import javax xml transform import javax xml transform stream public class TestOutpu
  • CSS 改变输入是否有值的样式

    我有一个带有占位符的输入元素 它应该始终出现 wrapper position relative input font size 14px height 40px placeholder position absolute font siz
  • Tkinter filedialog 破坏条目小部件

    tl dr 当应用程序调用时tkinter filedialog entry字段无法正确聚焦 长解释 初始化 tkinter 应用程序时 entry默认情况下启用字段 他们的状态是tk ENABLED 可以通过滚动字段来关注它们tab 最重
  • jcreator中如何设置jdk路径

    我已经安装了jdk 1 7 in C jdk1 7 0 directory and JCreator in C Program Files directory 我在JCreator中设置了正确的jdk路径 但是当我尝试在其中执行 java
  • 创建临时表前先检查临时表是否存在,如果存在则删除

    我使用以下代码来检查临时表是否存在 并在再次创建之前删除该表 如果存在 只要我不更改列 它就可以正常工作 如果我稍后添加一列 它将给出 无效列 的错误 请让我知道我做错了什么 IF OBJECT ID tempdb Results IS N
  • Delphi TCP连接透明代理

    有人知道用 Delphi 编写的 TCP 套接字代理应用程序的示例吗 我正在构建一个小型代理应用程序 它需要侦听给定 TCP 端口上的套接字连接 读取通过连接发送的 XML 数据包 通过 TCP 将请求发送到从可用后端服务器池中选择的服务器
  • Webstorm中的Jade语言注入

    我有一个 HTML 元素 我希望将其内容视为 Jade 稍后将其编译为纯 html Webstorm 显然无法识别这一点 因此它没有语法突出显示 如果我将 jade 添加为语言注入 它不会被列为可能的语言注入之一 然而 Jade 文件可以被
  • 使用 rownum 选择表的第二行

    我尝试过以下查询 select empno from select empno from emp order by sal desc where rownum 2 这不会返回任何记录 当我尝试这个查询时 select rownum empn
  • 无法读取未定义的属性“标题”,但显示标题

    我是 Angular 4 的新手 我正在尝试构建我的第一个应用程序 标题显示在屏幕上 但在console 这是 html 文件中的第 26 行 h1 result title h1 This is 旅行详情组件 export class T
  • 合并 Android 单元测试和连接测试代码覆盖率数据已损坏

    Android Gradle 插件 2 3 3 版本能够提供合并的单元测试和连接的测试代码覆盖率数据 在版本 3 0 0 中 此功能被破坏 因为每种测试类型都使用不同且不兼容的 JaCoCo 版本 拉斐尔 托莱多提供中等博客文章展示了如何在
  • 提交表单而不重新加载页面[重复]

    这个问题在这里已经有答案了 我有一个用 JavaScript 构建的函数 我想在表单提交被点击后执行该函数 它基本上完全改变了页面的外观 但我需要搜索框中的一个变量才能继续传递到 JavaScript 目前它会闪烁并重置那里的内容 因为它会
  • 使用 jodatime 查找剩余日期和时间

    我想使用 joda 时间进行比较 查找剩余天数和两天之间的时间 我正在使用两个像这样的 DateTime 对象 一个正在开始 另一个正在结束 DateTime endDate new DateTime 2011 12 25 0 0 0 0
  • React Redux mapDispatchToProps 与 this.props.dispatch

    到目前为止 我以这种方式使用容器和组件操作
  • Angular 2 - Typescript 函数与外部 js 库的通信

    Using JavaScript Infovis 工具包作为绘制图形和树的外部库 我需要操作节点的 onClick 方法 以便异步发送 HTTP GET 请求到服务器 并将来自服务器的数据分配给 Angular 服务类的属性和变量 通过使用
  • 将未链接的 Excel 图表粘贴到 Powerpoint

    我目前正在进行一个项目 将 50 多组 Excel 图表传输到 Powerpoint 演示文稿 我正在比较 50 多个项目并制作 50 多个相同的图表 我在 Excel 工作簿中设置的方式是 图表始终是相同的图表 即图表 2 但通过更改唯一
  • 如何获得UCWA和Skype Web SDK的授权?

    我有 Skype for Business 帐户通话 电子邮件受保护 我正在尝试获得授权 我对 lyncdiscover 服务的第一个请求 GET https lyncdiscover shockw4ves onmicrosoft com
  • Sinch SDK - 如何注销用户?

    我正在使用 Sinch SDK 进行即时消息传递 如何注销用户 我有注销用户的按钮 但无法在 Sinch SDK 中实现该功能 他们的文档或示例都没有描述此类功能 sinch客户端没有注销功能 我们认为移动用户是 在线 的 如果您不想接收更
  • 使用 __future__ 还是 future 来编写兼容 python2 和 python3 的代码更好?

    或者在某些特定情况下 其中一种比另一种更好 到目前为止 我所收集到的只是 future 仅适用于 gt 2 6 或 gt 3 3 我当前的代码非常基本 除了使用打印函数调用之外 在 python2 和 3 上运行相同 然而 随着时间的推移