月魔同学 发表于 2020-8-4 18:21:04

44讲课堂练习

<div>import time as t</div><div>class Time():
   
    #开始计时
    def start(self):
      self.start=t.localtime
      print('计时开始')
      
    #停止计时
    def stop(self):
      self.stop=t.localtime
      self._calc()
      print('计时结束')
      
    #内部方法,计算时间
    def _calc(self):
      self.lasted=[]
      self.prompt="总共运行了"
      for index in range(6):
            self.lasted.append(self.stop-self.start)
            self.prompt +=str(self.lasted)</div><div>      print(self.prompt)

</div>
======================== RESTART: E:/python/程序/44_计时器.py =======================
>>> q=Time()
>>> q.start()
计时开始
>>> q.stop()
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
    q.stop()
File "E:/python/程序/44_计时器.py", line 13, in stop
    self._calc()
File "E:/python/程序/44_计时器.py", line 21, in _calc
    self.lasted.append(self.stop-self.start)
TypeError: 'builtin_function_or_method' object is not subscriptable

不知道为什么错了?并且想知道怎么改?



1q23w31 发表于 2020-8-4 18:49:20

本帖最后由 1q23w31 于 2020-8-4 18:52 编辑

# -*- coding: utf-8 -*-
"""
Created on Tue Aug4 09:24:02 2020

@author: Administrator
"""
import time as t
class Time():
    def __init__(self):
      self.start = ''
      self.stop = ''
   
    #开始计时
    def kaishi(self):
      self.start=t.time()
      print('计时开始')
      
    #停止计时
    def jiesu(self):
      self.stop=t.time()
      self._calc()
      print('计时结束')
      
    #内部方法,计算时间
    def _calc(self):
      self.lasted=[]
      self.prompt="总共运行了"
      self.lasted.append(self.stop-self.start)
      self.prompt +=str(self.lasted)
      print(self.prompt)



static/image/hrline/line6.png

1、变量名与函数名重复
2、time那l没调用
3、localtime返回的对象不支持相减

sunrise085 发表于 2020-8-4 19:07:10

本帖最后由 sunrise085 于 2020-8-4 19:08 编辑

共有三处两种错误,帮你修改了,在注释中已经写出来了。
1.类变量名与类函数名重复了
2.localtime是函数,调用函数需要加括号
import time as t
class Time():
   
    #开始计时
    def start(self):
      self.begin=t.localtime()#1.这里类变量名与类函数名重复了;2.localtime是函数名,需要加括号才是调用函数
      print('计时开始')
      
    #停止计时
    def stop(self):
      self.end=t.localtime()#1.这里类变量名与类函数名重复了;2.localtime是函数名,需要加括号才是调用函数
      self._calc()
      print('计时结束')
      
    #内部方法,计算时间
    def _calc(self):
      self.lasted=[]
      self.prompt="总共运行了"
      for index in range(6):
            self.lasted.append(self.end-self.begin)#stop和start同样需要改为end和begin
            self.prompt +=str(self.lasted)
      print(self.prompt)
页: [1]
查看完整版本: 44讲课堂练习