出现AttributeErro的原因
代码如下 来自零基础学pythonimport 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+other.lasted)
if result:
prompt+=(str(result)+ self,unit)
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-self.begin)
if lasted:
self.prompt+=(str(self.lasted)+self.unit)
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
你把 time 模块命名为 t
然后肯定又定义了一个 t = timer()
所以才报这个错误
换个别的变量名,就不会报错了
aaa = timer()
aaa.start() 本帖最后由 白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 这种模块没必要重新命名哈.
以后注意一点,尤其模块间的重名必须得注意!
页:
[1]