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

Python中操作self参数拼接字符串后缀的自定义函数调用不生效问题

问题原因
  • Python中的字符串属于不可变对象,函数内部对形参的重新赋值不会修改外部传入的原始变量,必须主动接收函数返回的新字符串才能拿到处理后的结果。如果调用时只写which_application("BTC")而没有用变量承接返回值,自然不会得到拼接后的内容。
  • 现有函数的分支存在返回值缺失问题:binance分支仅写了pass没有返回原字符串;输入不合法触发递归调用时,也没有将递归的执行结果返回,这两个分支最终都会默认返回None,自然无法拿到预期的币种名称。
修复方案

调整函数逻辑

建议先把形参名从self改成更符合普通函数语义的coin_name,self通常仅用于类的实例方法指代实例对象,普通函数使用容易造成混淆。同时补全所有分支的返回值,修改后代码如下:

def which_application(coin_name):
    print("Which application was this transaction made on? Type either 'hotbit' or 'binance'")
    which_application_prompt = input("").strip().lower()

    if which_application_prompt == 'hotbit':
        return coin_name + 'HB'
    elif which_application_prompt == 'binance':
        return coin_name
    else:
        print("Invalid input.")
        # 必须返回递归调用的结果
        return which_application(coin_name)

正确调用方式

调用时必须用变量接收函数的返回值,示例:

origin_coin = "BTC"
processed_coin = which_application(origin_coin)
print(processed_coin)

执行后输入hotbit会输出BTCHB,输入binance会输出BTC,符合业务需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:15:02