我想要一个名为print
的{{1}}函数的副本。我怎样才能在Python中使用别名?
答案 0 :(得分:22)
您可以在Python 3中简单地指定debug = print
。
在Python 2中print
不是一个函数。无法为自己提供与debug
(print
,print 1,
等完全相同的print 1 >> sys.stderr
语句。你能做的最好就是在print
语句周围写一个包装器:
def debug(s):
print s
您还可以禁用print
语句并使用Python 3版本:
from __future__ import print_function
debug = print
如果这样做,则不能再使用语句版本(print x
)。如果你没有破坏任何旧代码,这可能是你要走的路。
答案 1 :(得分:7)
在Python 2.x中你可以这样做:
def debug(s):
print(s)
在3.x中你可以使用赋值:
debug = print
答案 2 :(得分:3)
您可以定义一个新功能debug
,如:
def debug(text):
print text
答案 3 :(得分:3)
这取决于您的Python版本。 Python 3只允许你这样做:
debug = print
但是,旧版本认为print
是内置关键字,因此您必须将其包装在您自己的函数中:
def debug(msg):
print(msg)
答案 4 :(得分:2)
def
方法的优点是回溯可以更清楚地识别别名。这可以帮助那些说“"什么' print
'?"如果他们只使用debug
(别名):
>>> def f():
... print x
>>> g = f
>>> g()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in f
NameError: global name 'x' is not defined
>>>
>>> def h():
... return f()
...
>>> h()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in h
File "<stdin>", line 2, in f
NameError: global name 'x' is not defined