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

如何实现自动识别变量的Python自定义print格式化输出函数?

解决方案

原代码的问题在于,f'{el}'只是将el变量的字符串内容直接输出,并没有把el的内容当作变量名去解析对应的值。要实现自动识别字符串中的变量名并输出其值,可以通过访问全局变量字典来实现:

Test = 'Hello!'

def prints(druck):
    # 获取全局作用域的变量字典
    global_vars = globals()
    for el in druck.split():
        # 检查当前单词是否是全局变量
        if el in global_vars:
            print(global_vars[el])
        else:
            print(el)

prints('Hello? Test')

运行这段代码后,输出会符合预期:

Hello?
Hello!

补充说明

  • 如果需要同时支持局部变量,可以结合locals()函数,优先检查局部作用域再检查全局作用域,示例如下:
def prints(druck):
    local_vars = locals()
    global_vars = globals()
    for el in druck.split():
        if el in local_vars:
            print(local_vars[el])
        elif el in global_vars:
            print(global_vars[el])
        else:
            print(el)
  • 注意:如果字符串中的普通单词恰好与某个变量名重名,会被自动替换为变量值,这是该功能的预期行为。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:28:12