whowho 发表于 2020-12-30 23:34:10

timer显示没被定义


>>> t1 = MyTimer()
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
    t1 = MyTimer()
NameError: name 'MyTimer' is not defined
>>> t1
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
    t1
NameError: name 't1' is not defined
>>>

太阳总会升起 发表于 2020-12-30 23:49:26

你的MyTimer()是类吗,还是函数,MyTimer()这个定义了没

whowho 发表于 2020-12-31 00:17:11

太阳总会升起 发表于 2020-12-30 23:49
你的MyTimer()是类吗,还是函数,MyTimer()这个定义了没

没有定义,按照小甲鱼课程学习写的,一样的代码但是出现问题

tryhi 发表于 2020-12-31 00:24:13

whowho 发表于 2020-12-31 00:17
没有定义,按照小甲鱼课程学习写的,一样的代码但是出现问题

没有定义,报没定义的错误不是很正常吗

Daniel_Zhang 发表于 2020-12-31 03:48:37

完整的代码呢?就放一个错误代码在上面,也就只能猜测你的代码有什么 bug......

逃兵 发表于 2020-12-31 08:24:30

先运行MyTimer,再t1=MyTimer()

import time as t

class MyTimer:
    def __init__(self, func, number=1000000):
      self.prompt = "未开始计时!"
      self.lasted = 0.0
      self.default_timer = t.perf_counter
      self.func = func
      self.number = number
   
    def __str__(self):
      return self.prompt

    __repr__ = __str__

    def __add__(self, other):
      result = self.lasted + other.lasted
      prompt = "总共运行了 %0.2f 秒" % result
      return prompt

    # 内部方法,计算运行时间
    def timing(self):
      self.begin = self.default_timer()
      for i in range(self.number):
            self.func()
      self.end = self.default_timer()
      self.lasted = self.end - self.begin
      self.prompt = "总共运行了 %0.2f 秒" % self.lasted
      
    # 设置计时器(time.perf_counter() 或 time.process_time())
    def set_timer(self, timer):
      if timer == 'process_time':
            self.default_timer = t.process_time
      elif timer == 'perf_counter':
            self.default_timer = t.perf_counter
      else:
            print("输入无效,请输入 perf_counter 或 process_time")

z5560636 发表于 2020-12-31 08:46:42

import time
t1 = time.time()
print(t1)

whowho 发表于 2021-1-4 20:48:03

太阳总会升起 发表于 2020-12-30 23:49
你的MyTimer()是类吗,还是函数,MyTimer()这个定义了没

小甲鱼就是这样写的代码,就没问题

whowho 发表于 2021-1-4 20:48:58

whowho 发表于 2020-12-31 00:17
没有定义,按照小甲鱼课程学习写的,一样的代码但是出现问题

小甲鱼这样写的代码,运行就没问题

whowho 发表于 2021-1-4 20:50:15

逃兵 发表于 2020-12-31 08:24
先运行MyTimer,再t1=MyTimer()

小甲鱼就是这样写的代码就没问题,为什么我的就出错,小甲鱼没有importtime

Daniel_Zhang 发表于 2021-1-4 23:45:54

whowho 发表于 2021-1-4 20:50
小甲鱼就是这样写的代码就没问题,为什么我的就出错,小甲鱼没有importtime

小甲鱼在哪儿写的没定义?第几节,多少分多少秒?还是课后作业?

你看看他是不是在 IDLE 里面跑的,如果是的话,可能是之前的某个地方已经引用过了time模块。没有引用按道理来讲是会出现未定义的情况。

逃兵 发表于 2021-1-5 08:06:51

whowho 发表于 2021-1-4 20:50
小甲鱼就是这样写的代码就没问题,为什么我的就出错,小甲鱼没有importtime

小甲鱼在文本模式下运行,进入交互模式,之后在交互模式下输入t1=MyTimer()
所以你没看到

一个账号 发表于 2021-1-6 19:58:34

whowho 发表于 2021-1-4 20:48
小甲鱼就是这样写的代码,就没问题

小甲鱼那个运行了这个程序之后输入的。。。。、

import time as t

class MyTimer:
    def __init__(self, func, number=1000000):
      self.prompt = "未开始计时!"
      self.lasted = 0.0
      self.default_timer = t.perf_counter
      self.func = func
      self.number = number
   
    def __str__(self):
      return self.prompt

    __repr__ = __str__

    def __add__(self, other):
      result = self.lasted + other.lasted
      prompt = "总共运行了 %0.2f 秒" % result
      return prompt

    # 内部方法,计算运行时间
    def timing(self):
      self.begin = self.default_timer()
      for i in range(self.number):
            self.func()
      self.end = self.default_timer()
      self.lasted = self.end - self.begin
      self.prompt = "总共运行了 %0.2f 秒" % self.lasted
      
    # 设置计时器(time.perf_counter() 或 time.process_time())
    def set_timer(self, timer):
      if timer == 'process_time':
            self.default_timer = t.process_time
      elif timer == 'perf_counter':
            self.default_timer = t.perf_counter
      else:
            print("输入无效,请输入 perf_counter 或 process_time")
页: [1]
查看完整版本: timer显示没被定义