鱼C论坛

 找回密码
 立即注册
查看: 1000|回复: 2

出现AttributeErro的原因

[复制链接]
发表于 2021-8-17 11:31:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码如下 来自零基础学python
import time as t

class timer():
   
    def __init__(self):
        self.unit = ['年','月','日','小时','分钟','秒']
        self.prompt = '未开始计时'
        self.lasted = []
        self.begin =0
        self.end = 0

    def __str__(self):
        return self.prompt
   
    __reper__=__str__
   
    def __add__(self, other):
        prompt = '总共运行了'
        result  = []
        for index in range(6):
            result.append(self.lasted[index]+other.lasted[index])
            if result[index]:
                prompt+=(str(result[index])+ self,unit[index])
        return prompt        
    def start(self):
        self.begin = t.localtime()
        self.prompt = '请调用stop停止计时'
        print('计时开始')
        
    def stop(self):
        if not self.begin:
            print("请调用start开始计时")
        self.end = t.localtime()
        self._calc()
        print('计时结束')

    def _calc(self):
        self.lasted = []
        self.prompt = '总共运行了'
        for index in range(6):
            self.lasted.append(self.end[index]-self.begin[index])
            if lasted[index]:
                self.prompt+=(str(self.lasted[index])+self.unit[index])
        self.begin = 0
        self.end = 0


以下是报错
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    t.start()
  File "C:/Users/xiaozerong/Desktop/Python/类的运用.py", line 26, in start
    self.begin = t.localtime()
AttributeError: 'timer' object has no attribute 'localtime'

为什么会报错?使用的是python3.8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-17 11:41:44 | 显示全部楼层
你把 time 模块命名为 t
然后肯定又定义了一个 t = timer()
所以才报这个错误
换个别的变量名,就不会报错了
aaa = timer()
aaa.start()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-17 13:40:28 | 显示全部楼层
本帖最后由 白two 于 2021-8-17 13:46 编辑

仔细看报错:
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    t.start()
  File "C:/Users/xiaozerong/Desktop/Python/类的运用.py", line 26, in start
    self.begin = t.localtime()
AttributeError: 'timer' object has no attribute 'localtime'

你看哈,第六行写的,属性错误, timer 这个对象没有 localtime 这个 attribute ,属于是实例对象和模块重名了.
你后面实例化的那个 t ,把开始导入的time模块那个 t 给覆盖了,而你 timer 类又没有写 localtime 这个属性,像 time 这种模块没必要重新命名哈.
以后注意一点,尤其模块间的重名必须得注意!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 02:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表