• 全部
  • 7天学习
  • 问题求助
  • 公开课
  • 博文广场
  • 精选专栏
  • 公告栏
  • 电子书
  • 代码块
  • Python技能树

新手小白请教,报错:object has no attribute

weixin_41858093 2021-07-11 14:05:25
新手小白正在学习 Exception 异常一章,练习以下代码后,老是报错,但找不到问题所在:
"""
9. 
  9.1 自定义异常类
  9.2 抛出异常
  9.3 捕获该异常
"""


# 9.1 自定义异常类
class ShortInputError(Exception):
    def __int__(self, length, min_len):
        self.length = length
        self.min_len = min_len

    def __str__(self):
        return f'你输入的长度是{self.length}, 不能少于{self.min_len}。'


def main():
    # 9.2 抛出异常;尝试执行;用户输入密码如果长度小于3,则抛出异常。
    try:
        con = input('请输入密码:')
        if len(con) < 3:
            raise ShortInputError(len(con), 3)
    # 9.3 捕获异常
    except Exception as result:
        print(result)
    else:
        print('密码输入已完成。')


main()  # 执行
———————————————————————————————————————————————————————————————————————————————————————
# 有bug,老报错:

# Traceback (most recent call last):
#   File "D:\PycharmProjects\pythonProject\Exception Errors.py", line 177, in main
#     raise ShortInputError(len(con), 3)
# __main__.ShortInputError: <exception str() failed>
#
# During handling of the above exception, another exception occurred:
#
# Traceback (most recent call last):
#   File "D:\PycharmProjects\pythonProject\Exception Errors.py", line 185, in <module>
#     main()
#   File "D:\PycharmProjects\pythonProject\Exception Errors.py", line 180, in main
#     print(result)
#   File "D:\PycharmProjects\pythonProject\Exception Errors.py", line 169, in __str__
#     return f'你输入的长度是{self.length}, 不能少于{self.min_len}。'
# AttributeError: 'ShortInputError' object has no attribute 'length'

———————————————————————————————————————————

...全文
311 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
__int__
应改为
__init__
回复 1
@赵4老师 感恩~是我冒失了
回复

length好像是内部函数,换个名字再试试

回复
@赵4老师 感谢,但是刚刚试了,报错依旧啊...
回复
@weixin_41858093 len?
回复
发帖
Python全栈技术社区
创建于2020-11-25

5771

社区成员

创建由Python学习者和社区专家组成的国内最大的第三方Python中文社区,帮助社区成员更好地入门学习、职业成长和应用实践
帖子事件
创建了帖子
2021-07-11 14:05
社区公告

创建由Python学习者和社区专家组成的国内最大的第三方Python中文社区,帮助社区成员更好地入门学习、职业成长和应用实践

  • 这里有最新最全的 Python 学习内容及资源,每月多达4次技术公开课
  • 这里有众多 Python 学习者,陪伴你一起交流成长
  • 这里有专业 Python 社区专家、讲师,帮助你跨越学习瓶颈,解决实操难题
  • 这里有丰富的社区活动,可以开阔眼界,结识更多同伴

【最新活动】:

  1. 周四技术公开课讲师招募中,点击查看详情
  2. “Python 社区专家团” 招募中,点击查看详情