majian890324 发表于 2020-6-29 16:11:25

Python 第 44 讲 动手里的问题?

本帖最后由 majian890324 于 2020-6-29 16:12 编辑

https://fishc.com.cn/thread-55756-1-1.html自己制作一个计时器工具

课后作业是上面的页面,因为代码太多我就不贴上来了,因为绝大部分的代码我都写出来了,其中的问题部分我用其他的方法曲线救国了一下,所以突然有个问题就是:

self.default_timer = t.process_time # 把 time 模块 里的这个函数赋值给一个变量

self.begin = self.default_timer()   ---------------# 在把这个变量赋值给另一个变量

还有一个是调用外部函数:

self.func = func   ----------------- # func 是一个外部函数

for i in range(self.number):    --------------- #循环计算调用这个函数所用的时间
            self.func()


问题:这里边主要是不明白 “()” 括号的意义,因为我刚开始想到的方法和参考答案是一样的,但是 self.default_timer = t.process_time 这里我写成:self.default_timer = t.process_time()。
结果不加括号,在后面:self.begin = self.default_timer() 这里在加括号就可以正常计时,但是我先加括号永远显示的秒数就是一个数不变,

还有就是这个计时器:在计算外部函数运行时间的时候,把外部函数当做一个变量传入到一个方法里进行计算,为什么fun要加()呢?

这个()是什么意思呢?

我感觉我说的有点不清楚哈,主要就是这个()到底是什么意思?

qiuyouzhi 发表于 2020-6-29 16:13:57

函数调用必须要加这个啊
基础没学过?

Twilight6 发表于 2020-6-29 16:28:18

本帖最后由 Twilight6 于 2020-6-29 16:32 编辑

结果不加括号,在后面:self.begin = self.default_timer() 这里在加括号就可以正常计时,但是我先加括号永远显示的秒数就是一个数不变,

不加括号是返回一个函数给 变量而你加了参数那么就是返回函数运行的结果返回给变量肯定会固定了时间了~~

加括号是调用函数,返回的是一个函数的运行结果,不加括号只是单纯的是个函数体

这个函数体被赋值到其他变量上去,当你想调用这个变量时候就只需要加上括号就行

majian890324 发表于 2020-6-29 16:30:49

qiuyouzhi 发表于 2020-6-29 16:13
函数调用必须要加这个啊
基础没学过?

恩,这个我知道,但是这个函数已经被当做一个参数传入到类的方法里去计算了啊?也需要加()?还有就是:time.perf_counter()这个我先加括号和在变量上加括号不一样吗?难道说后加括号的意思就是只是把名字赋给变量,然后在变量上加括号?

qiuyouzhi 发表于 2020-6-29 16:33:27

majian890324 发表于 2020-6-29 16:30
恩,这个我知道,但是这个函数已经被当做一个参数传入到类的方法里去计算了啊?也需要加()?还有就是:ti ...

变量名字是不能加括号的
self.default_timer = t.process_time
这个是把t.process_time的函数对象给了self.default_timer
self.begin = self.default_timer()
这个是把self.default_timer的调用结果赋值给了self.begin
可是self.default_timer等于t.process_time,所以这行代码就应该是:
self.begin = t.process_time()
页: [1]
查看完整版本: Python 第 44 讲 动手里的问题?