You need to enable JavaScript to run this app. Python无法在函数外打印函数属性报错:function对象无Daysleft属性
优惠活动
大模型
产品
解决方案
定价
更多

Python无法在函数外打印函数属性报错:function对象无Daysleft属性

报错原因
  • 最直接的原因是拼写大小写不一致:你在函数内部为函数对象绑定的属性名为DaysLeft(首字母L大写),但调用打印时写的是Daysleft(首字母l小写),名称不匹配自然找不到对应属性。
  • 额外说明:将返回值绑定为函数对象属性的写法本身存在设计隐患,函数属性是全局共享的,多次调用该函数会直接覆盖之前的属性值,很容易出现意料之外的bug。
修复方案

临时修复

直接修正打印语句的拼写即可正常运行:

correctdate(compare,Dayslist,Monthslist)
print(correctdate.DaysLeft)

规范优化方案(推荐)

直接修改函数逻辑,通过返回值传递结果,完全不需要依赖函数属性、也不需要提前传入可变列表参数,避免副作用,代码更易维护:

def correctdate(compare):
    Dayslist = []
    # 分割天的部分
    for day in compare:
        if day == "/" or day == "\\":
            compare.remove(day)
            break
        else:          
            Dayslist.append(day)
    # 移除天的字符,剩下的是月的部分
    for removenum in Dayslist:
        compare.remove(removenum)
    # 处理前导零
    days_left = "".join(Dayslist).lstrip("0")
    months_left = "".join(compare).lstrip("0")
    # 直接返回两个结果
    return days_left, months_left

调用方式也更简洁:

DaysLeft, MonthsLeft = correctdate(compare)
print(DaysLeft)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 02:48:03