如何在仅传入单个字符串时使用Python的*param1参数且不修改原函数
解决方案
你可以直接对split(',')的结果使用解包操作符*,把拆分后的每个字符串元素作为param1的独立参数传入,同时显式指定param2的值——不需要额外转换成元组,列表本身就能被*解包。
示例代码
假设你的函数定义如下:
def function_name(*param1, param2): print("param1:", param1) print("param2:", param2)
调用方式:
input_str = "120,220,400" # 直接解包split后的列表,同时指定param2 function_name(*input_str.split(','), param2="你需要的参数值")
运行输出:
param1: ('120', '220', '400') param2: 你需要的参数值
额外说明
- 因为
param2定义在*param1之后,属于关键字-only参数,调用时必须通过关键字参数的形式传递,不能用位置参数 - 如果需要将拆分出的字符串转为整数(或其他类型),可以先做类型转换再解包:
此时function_name(*map(int, input_str.split(',')), param2=200)param1会是整数元组(120, 220, 400)
内容的提问来源于stack exchange,提问作者Scipio
相关产品推荐
相关产品推荐

