2012-11-07 79 views
0

我想傳遞可變參數個數的參數,然後打印它們(如果某些條件爲真)。 當我嘗試這樣做時:打印元組作爲參數數

def my_print(*args) 
    print args 

它打印一個元組。我如何使python act my_print(a,b)作爲print a,b

+0

你爲什麼想要這樣做? –

+0

@Mark:這是簡單的日誌功能。如果錯誤日誌級別對於此消息來說足夠高,則將其作爲打印 – RiaD

回答

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語句的現有代碼都會中斷。

5

你可以這樣做:

from __future__ import print_function 

print(*args) 

這可以讓你的3.x的樣式打印功能,因此您可以解壓的參數。請注意,然後您需要在該模塊的任何地方使用3.x語法。

+0

這很好,但我不打算更改所有代碼。所以+1,但接受馬克 – RiaD

0

使用內置打印功能:

from __future__ import print_function 

my_print = print 

或者

my_print = getattr(__builtins__, 'print') 
0

你可以嘗試

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

但它看起來像其他的答案是比較正確的