鱼C论坛

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

[已解决]44讲课堂练习

[复制链接]
发表于 2020-8-4 18:21:04 | 显示全部楼层 |阅读模式

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

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

x
<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[index]-self.start[index])
            self.prompt +=str(self.lasted[index])</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[index]-self.start[index])
TypeError: 'builtin_function_or_method' object is not subscriptable
不知道为什么错了?并且想知道怎么改?



最佳答案
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[index]-self.begin[index])#stop和start同样需要改为end和begin
            self.prompt +=str(self.lasted[index])
        print(self.prompt)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-4 18:49:20 | 显示全部楼层
本帖最后由 1q23w31 于 2020-8-4 18:52 编辑
# -*- coding: utf-8 -*-
"""
Created on Tue Aug  4 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)


                               
登录/注册后可看大图


1、变量名与函数名重复
2、time那l没调用
3、localtime返回的对象不支持相减
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[index]-self.begin[index])#stop和start同样需要改为end和begin
            self.prompt +=str(self.lasted[index])
        print(self.prompt)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 14:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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