【问题标题】:Can I import and bind python-2.7's function to another function in python-3.x?我可以导入 python-2.7 的函数并将其绑定到 python-3.x 中的另一个函数吗?
【发布时间】:2017-12-09 19:05:57
【问题描述】:

一些 python-2.7 和 python-3.x 函数具有相同的名称,但执行不同。我可以通过更改名称在 python-3.x 中导入使用 py2.7 函数吗?

与 python 3 中的 print("TEXT") 相比,python-2.7 的“打印”,即print "TEXT" 不使用括号。我可以通过将 python 2“打印”绑定到某些东西来保留它吗?喜欢pr

(顺便说一句,我的问题是输入和转义括号。() 键比空格键更难按。另外,因为我的 IDE 自动将它们放入,然后我需要将光标移出它。)

注意:我之前问过这个问题,但被错误地标记为重复。 同样,为了清楚起见,我特意询问是否可以将 python 2 函数绑定到一个新名称,以便在 python-3.x 中使用它的功能。

Can I bind python-2.7's `print` in python-3.x, allowing me to use `print` without parenthesis in python-3.x?

我不知道如何通过内部消息联系版主或更正此错误标记。

【问题讨论】:

  • print 在 Python 2 中不是函数,因此即使您可以以某种方式绑定 Python 2 函数并在 Python 3 中使用它,也无济于事。

标签: python python-2.7 syntax


【解决方案1】:

真正的解决方案是配置您的 IDE,而不是尝试破解这些配置问题。

也就是说,Python 3 中不存在带有空格且没有括号的 Python 2 print 语句。虽然您可以从 Python 2 中找到使用该函数的方法,但无法使用该语法。

【讨论】:

    【解决方案2】:

    如果您的真正问题是 print() 中的括号用于 python 3,那么不,据我所知,没有真正的解决方案。如果它是一个不同的功能,你总是可以这样做

    def funcName(arg):
        return anotherFunc(arg)
    

    或作为chepner cmets

    funcName = anotherFunc
    

    有效地重命名anotherFunc()

    至于您的 IDE 特定问题,可能有一种方法可以关闭自动括号(或者您可以只使用键盘上的箭头键),并且您使用括号的次数越多,使用它们的速度就越快,这可能是一件好事,因为它们基本上用于您将使用的每个功能。

    最后,最好不要强迫一种语言去做它并没有真正提供的特定事情。你不在 Python 中使用 GOTO——它们不是内置的。您可以使用其他方法编写它们。你在 python 3 中使用括号——不要试图改变它!不按照您描述的方式更改语言还有另一个原因 - 它会降低代码的可读性。当你写的时候,每个人都会知道你的意思

    ''.join(something)
    

    但不是在你写作的时候

    randomFuncName(something)
    

    然后在某个不起眼的地方,你有一个像上面描述的那样重命名''.join的函数。

    【讨论】:

    • 你必须写def funcName(arg): return anotherFunc(arg),尽管写funcName = anotherFunc更简单(也更有效),因为函数是一流的对象。
    猜你喜欢
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多