不要直接调用.next()方法。在迭代器上使用^{} function:for u in up:

head = next(u)[1:].strip()

q = "".join(s.strip() for s in next(u))

next()函数将在Python2和3上调用正确的钩子。

但是,您从futurize看到的错误消息表明您可能在代码的其他地方绑定了名称next。

如果你有类似的东西:

^{pr2}$

或者def next(...):

# some function

作为一个全局函数,那么您是在跟踪内置的next()函数。{避免在cd5>中使用任何全局问题。

例如,下面的演示代码抛出您看到的消息:$ cat demo.py

def next(): pass

n = g.next()

$ bin/futurize demo.py

RefactoringTool: Skipping optional fixer: idioms

RefactoringTool: Skipping optional fixer: ws_comma

RefactoringTool: Refactored demo.py

- demo.py (original)

+++ demo.py (refactored)

@@ -1,2 +1,2 @@

def next(): pass

-n = g.next()

+n = g.__next__()

RefactoringTool: Files that need to be modified:

RefactoringTool: demo.py

RefactoringTool: Warnings/messages while refactoring:

RefactoringTool: ### In file demo.py ###

RefactoringTool: Line 1: Calls to builtin next() possibly shadowed by global binding

RefactoringTool: ### In file demo.py ###

RefactoringTool: Line 1: Calls to builtin next() possibly shadowed by global binding

注意该工具如何使用g.__next__()而不是{},以避免使用{}作为函数。

从该代码中删除next函数会导致:$ cat demo.py

# def next(): pass

n = g.next()

$ bin/futurize demo.py

RefactoringTool: Skipping optional fixer: idioms

RefactoringTool: Skipping optional fixer: ws_comma

RefactoringTool: Refactored demo.py

- demo.py (original)

+++ demo.py (refactored)

@@ -1,2 +1,2 @@

# def next(): pass

-n = g.next()

+n = next(g)

RefactoringTool: Files that need to be modified:

RefactoringTool: demo.py

python 2x与python 3x是否兼容_使.next()与Python2和3兼容相关推荐

  1. python 2x和python 3x的区别_python2x和3x区别

    Python - 2x和3x的区别 编码: 回到顶部 Python2的默认编码是ASCII码,这是导致Python2中经常遇到编码问题的主要原因之一,至于原因,在于Python这门语言出现的时候,还没 ...

  2. gdpr 第32条_使您的WordPress网站GDPR兼容的10条提示

    gdpr 第32条 As most people should now be aware, the General Data Protection Regulation (GDPR) comes in ...

  3. 360java不兼容_(转)QQ如何不兼容360

    这是我在论坛看到: package aa; import java.io.BufferedReader; import java.io.IOException; import java.io.Inpu ...

  4. Python初探---2x版本与3x版本的区别

    Python的3.0版本,常被称为Python 3000,或简称Py3k.相对于Python的早期版本,这是一个较大的升级. 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容. ...

  5. python中控制代码块逻辑关系_一、Python基础知识

    1.1 Python简介 (1)解释型语言 解释型语言在运行程序的时候才逐行翻译.运行. ①优点: 有良好的平台兼容性,在任何环境中都可以运行(安装了解释器)灵活,修改代码的时候直接修改就可以,可以快 ...

  6. python从0开始学编程课件_小白从零开始学编程(三)--python基本概念

    前言 从2020年3月份开始,计划写一系列文档--<小白从零开始学编程>,记录自己从0开始学习的一些东西. 第一个系列:python,计划从安装.环境搭建.基本语法.到利用Django和F ...

  7. Python 程序设计(第二版)董付国_清华大学出版社_习题答案与分析【针对8.4及其之前的】

    更多精彩内容:(没有设置公众号获得,麻烦动动小手~谢谢) CSDN下载:Python编程无师自通电子书,[美]科里·奥尔索夫(Cory Althoff)-文档类-CSDN下载 百度云:链接:https ...

  8. 在python中定义类时、运算符重载_自定义 Python 类中的运算符和函数重载(上)...

    如果你对 Python 中的str对象使用过 + 或 * 运算符,你一定注意到了它的操作与 int 或 float 类型的区别: 你可能想知道同一内置运算符或函数如何对不同类对象进行不同操作的.这分别 ...

  9. python多个日志模块怎么隔离_在多个模块中使用Python日志logging

    最好的做法是在每个模块中都有一个像这样定义的logging器: import logging logger = logging.getLogger(__name__) 靠近模块的顶部,然后在模块的其他 ...

最新文章

  1. Linux系统的启动过程
  2. 6kyu Persistent Bugger
  3. Visual Studio 2010 Ultimate敏捷测试驱动开发
  4. QT串口2--控制GSM模块的使用
  5. php5.4与php5.2,升级php 5.2.14 到5.4.11版本报错问题
  6. 【BZOJ4129】Haruna’s Breakfast,树上带修莫队+权值分块求mex
  7. Java中List、Collections实现梭哈游戏
  8. Unix下oracle备份,Linux下Oracle备份与数据迁移
  9. 动易html在线编辑器,动易系统解决IE8网站后台编辑器无效问题
  10. 【转】Myeclipse2017破解:成功解决me Trial expired 0 days ago mgeclipse It's now time to buy the best IDE for y
  11. Handmade Hero全程直播游戏引擎开发
  12. signature=6c079696129d622a67d7c54abb9b893c,合肥2017年1月24日至2017年2月10日交通违章查询...
  13. C语言:memcmp()---字符串比较
  14. 毕索大学计算机科学怎么样,毕索大学计算机硕士介绍
  15. 【读书】2019年阅读记录
  16. Android 图片资源
  17. SublimeLinter
  18. 服务器无限刷钱bug,魔兽世界怀旧服出现“重大”刷金币BUG,分线的负面影响来的太快...
  19. vs2010中opengl环境配置
  20. 管理信息系统【一】之 管理信息系统概论

热门文章

  1. MERGE语句——数据集横向合并
  2. UBUNTU安装 Rabbitvsc可视化版本控制客户端软件
  3. 一个Eclipse代码显示主题
  4. java中gc的认识,java JVM GC 笔记(个人对GC 或JVM 的了解)
  5. python怎么写手机按钮_python与mel的button写法
  6. opengl游戏引擎源码_渲染概念:1.引擎二三事
  7. mac插网线不能上网_实现两个无线路由器之间的连接,最稳定的方式是使用网线连接...
  8. 内网穿透和内网映射区别是什么?
  9. 【转载】Could not create the view: An unexpected exception was thrown.问题解决
  10. python文件读写_python基础-文件读写'r' 和 'rb'区别