python入门 第44讲第二题
import time as tclass MyTimer():
def __init__(self):
self.prompt='未开始计时'
self.lasted=0.0
self.begin=0.0
self.end=0.0
self.default_time=t.perf_counter
def __str__(self):
return self.prompt
__repr__=__str__
def start(self):
self.begin=self.default_time()
self.prompt='请先调用stop停止计时'
print("计时开始")
def stop(self):
if not self.begin:
print("请先调用start,开始计时")
else:
self.end=self.default_time()#这个地方的self.default_time(),()代表的什么意思呢,自己写的时候没有括号,编译出错,不太理解,可否指教
self._calc()
print("计时结束")
def _calc(self):
self.lasted=self.end-self.begin
self.prompt='总共运行了%0.2f'%self.lasted
self.begin=0
self.end=0
def __add__(self,other):
result=self.lasted+other.lasted
prompt='总共耗时:%0.2f'%result
return prompt
def set_timer(self,timer):
if timer=='perf_counter':
self.default_time=t.perf_counter
elif timer=='process_time':
self.default_time=t.process_time
else:
print('输入有误,请输入perf_counter或process_time') 因为t.perf_counter()是内置函数,你本应这样写self.default_time=t.perf_counter(),self.default_time就不用加(),而你只是把内置函数的名称赋值给self.default_time,所以调用self.default_time要加括号. myqf123 发表于 2021-11-26 09:33
因为t.perf_counter()是内置函数,你本应这样写self.default_time=t.perf_counter(),self.default_time就不 ...
明白了,第一次__init__中self.default_time只是为了把t.perf_counter的函数名字赋值给他,等到程序调用,是为了获得这个函数功能,所以有括号的是函数,没括号的只是名字 zhengzaiaining 发表于 2021-11-26 09:55
明白了,第一次__init__中self.default_time只是为了把t.perf_counter的函数名字赋值给他,等到程序调用 ...
对的 zhengzaiaining 发表于 2021-11-26 09:55
明白了,第一次__init__中self.default_time只是为了把t.perf_counter的函数名字赋值给他,等到程序调用 ...
能否给个最佳答案{:5_92:} myqf123 发表于 2021-11-26 10:50
能否给个最佳答案
好的,感谢
页:
[1]