学习!
什么玩意啊,这真的是零基础学Python吗?
完全没看懂。。。
不太懂
我看了两本书, 再加这篇文章, 依然没看懂!!!!
你这篇改改吧 我感觉一团糟@小甲鱼
本帖最后由 jack_xy 于 2020-9-3 18:08 编辑
其实就是python程序解释程序的一个代码置换功能嘛,这篇文章有点绕。{:10_266:}
(1)定义某个类AClass() 或函数init_function()
class AClass(object):
def __init__(self,myfun):
self.f =myfun
def __call__(self):
....
self.f()
....
return xxxx
或者
def init_function(myfun):
defcall():
.....
myfun()
.....
return xxxx
return call
(2)@某个类名AClass或者 @某个函数名init_function
(3) 紧跟着定义(2)中类或者函数的参数,这个参数一般也是个函数指针myfun()
@AClass
def myfun():
....
.....
return aaaaa
或者
@init_function
def myfun():
....
.....
return aaaaa
(4)然后在程序代码段中调用这个参数函数myfun()时,编译程序实际上是调用(2)中这个类AClass(myfun).__call__()或者函数init_function(myfun)
看了几天了,终于看懂了,不容易啊{:10_282:}
Py3.85 clock()被删掉了可以另用time.perf_counter() 或 time.process_time() 方法替代。
看不懂
倒数第二个例子的缩进有问题啊
所以在类定义的话是在类里面还是在类外面呢
没看懂
这太坑了吧,完全没法理解啊
第二段代码:先运行第一行导入模块,函数定义先不看,运行第21行,打印f(),这个函数内容其实被timeslong()的return给call()了,所以打印的不是修饰符里面的函数,而是call()函数,再看call()中5-6行没问题,带7行的时候发现有个func,这是个什么呢?这是f()的工具名字,所以实际上是运行的f()的内容然后在运行8-10,所以正确运行循序为1,21,3,13,11,4,5,6,(14-19),8,9,10.
相当于一种内嵌函数,个人理解。
(⊙_⊙)?
小甲鱼阿。。看不懂阿。。
这一讲感觉很不清楚哎
{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}
这篇搞得不好,新手很容易看不懂,推荐新手先去CSDN上查看装饰器的说明再回来看这篇文章