Вы должны использовать print message
напрямую, этого достаточно (будет напечатано множество дополнительных аргументов).
Небольшое дополнение к предыдущим ответам: в Python 2.x print
нетфункция, кроме оператора, , но print(arg1, arg2)
действительна ... при использовании оператора print
для кортежа (arg1, arg2)
.
Это немного отличается от print arg1, arg2
, так какможно увидеть:
>>> print 'aaa', 'bbb'
aaa bbb
>>> print('aaa', 'bbb')
('aaa', 'bbb')
Теперь, в дополнение к ответу themel:
case 1 : не использовать *
для расширения кортежа аргумента
>>> def p(*args):
... a(args) # <== args is a tuple
>>> def a(*args):
... print args # <== args is a tuple (but nothing else can be used)
>>> p('bb')
(('bb',),)
Результатом является кортеж кортежа.
Случай 2 : расширение аргументов в p
:
>>> def p(*args):
... a(*args) # <== now arguments are expanding
...
>>> p('bb')
('bb',)
Результаткортеж аргументов, переданных p
.
Так что *args
является правильным использованием, но это не разрешено в выражении.