Python中为函数参数批量赋值None的正确语法及优化方案
批量为属性赋值None的正确语法及优化方案
正确语法实现
你原来的代码存在语法问题,Python不支持直接在函数参数里用v{i}这种方式生成关键字参数名,得通过字典解包来实现。另外注意range(18)只会生成0到17的整数,要覆盖v0到v18得用range(19)。修正后的代码如下:
for i in range(19): attr_name = f"v{i}" sx.set_attribute(**{attr_name: None})
这里用f-string生成每个属性名,把属性名和None组成字典后,用**操作符将字典解包为关键字参数,传给set_attribute函数。
更优的变量管理方法
如果这些v0到v18是你自己定义的变量,没必要单独命名一个个变量,用列表或字典统一管理会更高效:
- 用列表:直接初始化一个包含19个None的列表,对应v0到v18:
后续访问时用vs = [None] * 19vs[0]、vs[1]...代替单独的v0、v1变量。 - 用字典:生成键为v0到v18、值为None的字典:
访问时用vs = {f"v{i}": None for i in range(19)}vs["v0"]、vs["v1"]即可,批量操作也更方便。
内容的提问来源于stack exchange,提问作者user15175462
相关产品推荐
相关产品推荐

