0

我想传递可变数量的参数,然后打印它们(如果某些条件为真)。当我尝试这样做时:

def my_print(*args)
    print args

它打印一个元组。如何让 pythonmy_print(a,b)充当print a,b

4

4 回答 4

5

你可以这样做:

from __future__ import print_function

print(*args)

这将为您提供 3.x 样式的打印功能,以便您可以解压缩参数。但是请注意,您需要在该模块的任何地方使用 3.x 语法。

于 2012-11-07T19:32:28.590 回答
2

在 Python 2.x 中,您可以使用str.join

def my_print(*args):
    print ' '.join(map(str, args))

如果您使用的是 Python 3.x,那么它会更容易,因为有一个print函数:

def my_print(*args):
    print(*args)

其他答案也提到你可以from __future__ import print_function,但这有一个缺点,即所有使用该print语句的现有代码都会中断。

于 2012-11-07T19:30:43.177 回答
0

使用内置打印功能:

from __future__ import print_function

my_print = print

或者

my_print = getattr(__builtins__, 'print')
于 2012-11-07T19:33:37.060 回答
0

你可以试试

for _ in len(range(args)):
    print a[_],

但看起来其他答案更正确

于 2012-11-07T20:58:46.600 回答