关于修饰符的一点问题
import timedef timeslong(func):
def call():
start = time.clock()
print("It's time starting ! ")
func()
print("It's time ending ! ")
end = time.clock()
return "It's used : %s ." % (end - start)
return call
@timeslong
def f():
y = 0
for i in range(10):
y = y + i + 1
print(y)
return y
print(f())
这个代码我运行报错,这是为什么
Traceback (most recent call last):
File "E:/py/修饰符2.py", line 21, in <module>
print(f())
File "E:/py/修饰符2.py", line 5, in call
start = time.clock()
AttributeError: module 'time' has no attribute 'clock'
以上是报错类型 报错已经说明:time 模块没有函数 clock
你要的应该是 time.time() 已经没有clock了,好像换成了另外一个,你可以百度一下,我之前也是这个问题 兄弟,如果我的解答对你有帮助,请设为最佳解答,谢谢 傻眼貓咪 发表于 2021-11-7 10:21
报错已经说明:time 模块没有函数 clock
你要的应该是 time.time()
还有个小问题是:想问一下这个东西不用修饰符应该是什么样呢
@timeslong
def f():
y = 0
for i in range(10):
y = y + i + 1
print(y)
return y W1ND123 发表于 2021-11-7 15:10
还有个小问题是:想问一下这个东西不用修饰符应该是什么样呢
@timeslong
def f():
如果没有修饰符,最下方的 print(f()) 就只是单纯打印函数 f() 的回传值而已 W1ND123 发表于 2021-11-7 15:10
还有个小问题是:想问一下这个东西不用修饰符应该是什么样呢
@timeslong
def f():
@timeslong # 这里你可以理解成将函数 f() 作为函数 timeslong() 的参数
def f():
y = 0
for i in range(10):
y = y + i + 1
print(y)
return y 傻眼貓咪 发表于 2021-11-7 16:58
@timeslong # 这里你可以理解成将函数 f() 作为函数 timeslong() 的参数
def f():
y = 0
大神可以写一下待了修饰符的全貌吗,不是很理解这里的呜呜呜 W1ND123 发表于 2021-11-8 10:36
大神可以写一下待了修饰符的全貌吗,不是很理解这里的呜呜呜
def A(func): # 参数是函数
print("这里是函数 A")
return func # 返回值是函数 B(意思就是调用函数 B)
@A # 修饰符,表示以下函数为 A 的参数
def B():
print("这里是函数 B")
B() # 调用函数 B,就会直接调用函数 A W1ND123 发表于 2021-11-8 10:36
大神可以写一下待了修饰符的全貌吗,不是很理解这里的呜呜呜
这只是冰山一角,其实修饰符还有很多其他用途,只是基本没有人用(大部份题目或习题极少出现修饰符,因为可有可无) 傻眼貓咪 发表于 2021-11-8 18:10
@A # 修饰符,表示以下函数为 A 的参数
def B():
print("这里是函数 B")
def A(b()): # 参数是函数
print("这里是函数 A")
return b() # 返回值是函数 B(意思就是调用函数 B)
代入函数作为参数应该是这样把
W1ND123 发表于 2021-11-9 16:11
@A # 修饰符,表示以下函数为 A 的参数
def B():
print("这里是函数 B")
兄弟,函数有括号表示执行,没有括号表示只取内存地址(你这个参数带有括号) 傻眼貓咪 发表于 2021-11-9 17:47
兄弟,函数有括号表示执行,没有括号表示只取内存地址(你这个参数带有括号)
算是明白自己不清楚的地方了!感谢您耐心的回答!!!
页:
[1]