如何通过字符串拼接变量名后缀实现动态变量取值?
如何根据字符串后缀动态获取变量值
推荐方案:用字典存储映射(最优解,一行搞定)
别单独定义Price_S、Price_M这类零散变量了,直接用字典把尺寸和价格做对应映射,不仅一行就能完成赋值,代码还更清晰易维护:
Size = 'M' price_map = {'S': 1.52, 'M': 2.62, 'L': 3.98} cost = price_map[Size]
后续要加新尺寸,直接在字典里追加键值对就行,完全不用修改逻辑代码。
如果你非要用原有的单独变量(不推荐)
可以通过globals()或locals()函数动态获取变量,同样一行代码就能实现,完全不需要for循环:
Size = 'M' Price_S = 1.52 Price_M = 2.62 Price_L = 3.98 cost = globals()[f'Price_{Size}']
不过这种方式不建议使用——代码可读性差,变量名拼写错误会直接触发报错,而且如果是函数内部的局部变量,得换成locals(),很容易踩作用域的坑。
总结:优先选字典方案,既简洁又符合Python编码规范;实在要处理单独变量,用上面的globals()写法也能一行搞定,根本不需要循环。
内容的提问来源于stack exchange,提问作者Demmit
相关产品推荐
相关产品推荐

