鱼C论坛

 找回密码
 立即注册
查看: 905|回复: 11

[已解决]关于修饰器的问题

[复制链接]
发表于 2020-5-25 22:04:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题我标注在了 代码中了, 但是我还是有一个问题。。 在定义一个类的时候 为什么 有时候是 class X, 有时候是class(), 有时候是class(object)啊? 求大佬为小萌新解答。。 爱你们



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 # 这里return call 最后return的是什么?? 为什么没有(),是实例化了吗??
                  # 在哪里实例化的?


@timeslong
def f():
    y = 0
    for i in range(10):
        y = y + i + 1
        print(y)
    return y


print(f())
最佳答案
2020-5-25 22:07:04
class x 等价于 class x() 等价于 class x(object)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 22:07:04 | 显示全部楼层    本楼为最佳答案   
class x 等价于 class x() 等价于 class x(object)

评分

参与人数 1荣誉 +2 鱼币 +1 收起 理由
Twilight6 + 2 + 1 小姐姐~~~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-25 22:09:32 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-25 14:07
class x 等价于 class x() 等价于 class x(object)

真的假的 小姐姐, 那我代码中备注的问题呢 求姐姐指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 22:14:14 | 显示全部楼层
hwang.me 发表于 2020-5-25 22:09
真的假的 小姐姐, 那我代码中备注的问题呢 求姐姐指点

哈哈哈哈 小姐姐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 22:15:14 | 显示全部楼层
class的()确实是隐藏的。可有可无,跟def函数有区别。class的参数也是同理,可有可无。
建议复习一下甲鱼的,类和对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 22:16:33 | 显示全部楼层
return的返回......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 22:18:06 | 显示全部楼层
hwang.me 发表于 2020-5-25 22:09
真的假的 小姐姐, 那我代码中备注的问题呢 求姐姐指点

return call 是返回了一个函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 00:59:14 | 显示全部楼层
class(object): 在py2中,规定,class没有父类,必须要要继承object,格式需要这么书写,而在py3中,class X, 有时候是class(), 有时候是class(object),只要类没有继承父类或者超类,都默认继承了object类,所有三个都一样,在py中,会有书写语法错误


2, 装饰器,return call   这个call 是一个函数,函数地址可以被返回,和引用

如果f():代码不使用装饰器,等价调用:timeslong(f)()

Stubbron敲码不易~如果有帮助到你,记得给#4的Twilight6最佳鼓励吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-26 03:43:24 | 显示全部楼层

难道又是 小哥哥吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-26 03:44:48 | 显示全部楼层
青出于蓝 发表于 2020-5-25 14:15
class的()确实是隐藏的。可有可无,跟def函数有区别。class的参数也是同理,可有可无。
建议复习一下甲 ...

唔唔唔  我最近一直在学  好挫败
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 06:51:11 | 显示全部楼层
Stubborn 发表于 2020-5-26 00:59
class(object): 在py2中,规定,class没有父类,必须要要继承object,格式需要这么书写,而在py3中,class  ...

,哈哈你这家伙
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 09:25:40 | 显示全部楼层
hwang.me 发表于 2020-5-26 03:43
难道又是 小哥哥吗

不知道  ,他也没反驳 说不定就是小姐姐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 00:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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