You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用用户输入指定unit-convert库的参数名与属性名?

如何用动态字符串调用unit-convert库的转换方法

我正在使用unit-convert库,它的调用示例如下:

# Bytes to terabytes
>>> UnitConvert(b=19849347813875).tb

现有用户输入的字符串变量:

input_value_unit = 'b'
output_value_unit = 'tb'
user_input_value = 19849347813875  # 假设的用户输入值

我尝试用UnitConvert(input_value_unit=user_input_value).output_value_unit调用,但这种写法没有使用字符串的实际值,该如何正确替换?


正确实现方式

要动态使用字符串作为参数名和属性名,需要用到Python的两个核心特性:

  • 字典解包传递关键字参数:将输入单位与对应值打包为字典,通过**语法解包后传入UnitConvert
  • getattr()动态访问属性:借助该函数根据字符串名称获取实例对应的输出单位属性

具体代码实现:

# 定义用户输入的值
user_input_value = 19849347813875

# 构造动态参数字典
input_args = {input_value_unit: user_input_value}
# 完成实例化与动态属性访问
conversion_result = getattr(UnitConvert(**input_args), output_value_unit)

print(conversion_result)

代码说明

  1. 先以input_value_unit的字符串值('b')作为键,用户输入值作为值,创建参数字典input_args
  2. 使用**input_args将字典解包为b=19849347813875形式的关键字参数,传递给UnitConvert构造函数
  3. 最后通过getattr()从UnitConvert实例中获取名为output_value_unit('tb')的属性,得到最终转换结果

内容的提问来源于stack exchange,提问作者Roger Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:10:20