首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否应该相信“python-3”会返回一个详尽的结果?

我是否应该相信“python-3”会返回一个详尽的结果?
EN

Stack Overflow用户
提问于 2016-07-08 15:54:29
回答 1查看 192关注 0票数 0

正如您在“”中所读到的:

-3警告Python3.x不兼容,这是2到3不能轻易修复的。

这个命令在过去帮助我避免Python2.x和3.x代码之间的不兼容。

但是,我对代码没有任何警告。我是否应该相信“python-3”会返回一个详尽的结果?

注:表面上,没有提到这个选项这里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-08 15:59:14

不,你不应该把这个警告看作是详尽无遗的。以下代码在python2.x和python3.x上的行为不同,但没有发出警告:

代码语言:javascript
复制
from __future__ import print_function

class test(object):
    def __nonzero__(self):
        return False

t = test()
if t:
    print('Hello')

(至少不是OSX上的python2.7.10 )。好的,也许这段代码可以由2到3来处理(确实如此) --尽管我仍然期待着基于正式文件的警告。

通过向Python3中删除或显著更改的特性发出DeprecationWarning,警告Python3.x可能存在的不兼容。

下面是一些由2到3处理代码的示例,但是仍然没有使用-3选项发出警告:

代码语言:javascript
复制
from __future__ import print_function

import subprocess

class Pipe(object):
    def __init__(self,openstr):
        self.gnu_process=subprocess.Popen(openstr.split(),
                                          stdin=subprocess.PIPE)

    def put_in_pipe(self,mystr):
        print(mystr, file=self.gnu_process.stdin)

if __name__=="__main__":
    print("This simple program just echoes what you say (control-d to exit)")
    p = Pipe("cat -")
    while True:
        try:
            inpt = raw_input()
        except EOFError:
            break
        print('putting in pipe:%s' % inpt)
        p.put_in_pipe(inpt)

这段代码的问题是,在python3中,我的管道需要一个字节对象,但是它得到了一个str (python2.x的unicode)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38270882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档