鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[扩展阅读] Python 函数修饰符(装饰器)的使用

  [复制链接]
发表于 2018-3-14 20:11:19 | 显示全部楼层
如果这里定义了多个类,类方法的这个方法定义是不是让这段代码里面的类都可以用这个方法,那如果要指定的一个类使用怎么办?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-15 17:45:30 | 显示全部楼层
对于@修饰符讲解的不是很清晰。。。例子感觉也有点深度,不怎么适合零基础的学员emmmmmm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-15 20:18:59 | 显示全部楼层
Python3.7的time.clock已经改成time.perf_counter 和 time.process_time了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 11:17:10 | 显示全部楼层
修饰符的作用,看了一些博客以后大概明白了一些
举两个例子:
1.
def fun(f):
    print('I love science')
    f()

@fun
def func():
    print('we love scien
运行结果:
I love science
we love science
在这个例子中,我没有对函数执行调用的操作,也有输出值。

2
def fun1(f):
    print('I love science')
    f()

def fun2(f):
    f()
    print('We love science')


def main():
    @fun1
    def f1():
        print('science!')
        @fun2
        def f2():
            print('wow!')
main()
结果:
I love science
science!
wow!
We love science
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-3-22 16:19:28 | 显示全部楼层
看的我一脸懵逼!
对于一个函数a(),a可以当做一个对象传递到另一个函数中,在上面计算执行时间就可以传递这样一个函数名,timeslong(a)不就可以计算时间了吗?并不需要把a()重写一遍啊....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 16:32:16 | 显示全部楼层
这文章写的...看完真的云里雾里,func()在timeslong()内部根本不用重写,对于外部的函数test(),把test这个对象实参传递给func形参就行了啊。。timeslong(test)不就可以计算test()运行的时间了啊。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 16:38:00 | 显示全部楼层
况qiqi 发表于 2018-3-22 11:17
修饰符的作用,看了一些博客以后大概明白了一些
举两个例子:
1.

这样的例子还不错,能够让人理解修饰符这样的语句在程序中是如何执行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 16:59:32 | 显示全部楼层
删减过吗????????????????????????为什么这么短?????????????描述都这么含糊不清???????
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-29 13:17:16 | 显示全部楼层
编程思路最好也讲下要不然很多基础薄弱者看不懂这些代码的逻辑性
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-7 20:39:23 | 显示全部楼层
看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-12 16:23:41 | 显示全部楼层
是真的看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-20 14:44:49 | 显示全部楼层
讲的有些含糊和草率了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-5 22:06:30 | 显示全部楼层
import time

def 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())


没看懂为什么说timeslong里面的func()为什么说正常要在里面再写一遍,它不会再外面调用吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-13 14:36:32 | 显示全部楼层
完全没看懂,参考其他的资料也没怎么懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-13 21:16:33 | 显示全部楼层
0.issubclass(class,classinfo)
1.isinstance(object,classinfo)
2.getattr(object,'name'[,default])
  hasattr(object,'name')
3.接口统一化,类中定义的函数名变化后,而不影响后续程序的编写
4.x=property(getXSize,setXSize,delXSize)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-16 11:42:24 | 显示全部楼层
坐过山车的赶脚就是这么酸爽。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-31 21:29:30 | 显示全部楼层
不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-10 22:06:52 | 显示全部楼层
百度了半天,还是有点晕,so sad
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2018-7-2 11:54:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2018-7-3 11:23:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-7 15:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表