Skip to main content
 首页 » 编程设计

python之Python 中 str.format() 中 *args 或 ** kwargs 的可变/任意数量

2025年05月04日15rubylouvre

我正在制作一个套接字客户端,需要定义一个函数来向服务器发送以下类型的消息:sometext,[name_1],[name_2],...,[name_n] .实际上消息更复杂,但为了举例我简化了它。

地点:

  • ... - 代表 name_2 和 last name_n 之间的其余姓名(以逗号分隔)
  • 每次可以有任意数量的名字

我知道有 *args 和 **kwargs,但是在这种情况下如何通过 str.format() 正确使用它们?我需要这样的东西:

def send_names(*args): 
    print('sometext,{*args},'.format(*args)) # as an example we just print 

我知道这段代码不起作用,因为 {*args} 在这里是非法的。 当我事先知道 *args 的数量时,代码就可以工作,如下所示:

def send_names(*args): 
    print('sometext,{0},{1},{2}'.format(*args)) # as an example we just print 

我错过了什么?

请您参考如下方法:

你可以加入*args来完成你想要的:

def send_names(*args): 
    print('sometext, {0}'.format(', '.join(args))) 
 
send_names('message1', 'message2', 'message3') 

结果:

sometext, message1, message2, message3