鱼C论坛

 找回密码
 立即注册
查看: 1707|回复: 6

[已解决]搞不懂python第40讲扩展的修饰符

[复制链接]
发表于 2019-4-8 16:59:23 | 显示全部楼层 |阅读模式

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

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

x
这个修饰符弄得头昏脑涨,卡了好几天,在网上也找了很多博客看,也是一知半解,看不太明白
这个是课后题5的代码A
  1. class CodeA:
  2.     def foo():
  3.         print("调用静态方法 foo()")

  4.         # 将 foo() 方法设置为静态方法
  5.         foo = staticmethod(foo)
复制代码

答案是:
  1. class CodeA:
  2.         @staticmethod  #这里的缩进为什么和下面不一样,要两个缩进
  3.     def foo():  
  4.         print("调用静态方法 foo()")
复制代码


然后用修饰符简化代码的操作我也不太懂,有没有大神帮忙解释一下
最佳答案
2019-4-8 17:27:39
本帖最后由 凌九霄 于 2019-4-8 17:39 编辑

你写错了,应该是这样
  1. class CodeA:
  2.     @staticmethod
  3.     def foo():
  4.         print("调用静态方法 foo()")
复制代码


这个语法糖的实质就是执行的foo = staticmethod(foo)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-8 17:27:39 | 显示全部楼层    本楼为最佳答案   
本帖最后由 凌九霄 于 2019-4-8 17:39 编辑

你写错了,应该是这样
  1. class CodeA:
  2.     @staticmethod
  3.     def foo():
  4.         print("调用静态方法 foo()")
复制代码


这个语法糖的实质就是执行的foo = staticmethod(foo)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-8 17:44:00 | 显示全部楼层
凌九霄 发表于 2019-4-8 17:27
你写错了,应该是这样

正常缩进就可以了是么,答案是给错了么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-8 18:11:42 | 显示全部楼层
pandarking 发表于 2019-4-8 17:44
正常缩进就可以了是么,答案是给错了么?

答案如果那么写肯定是错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-8 18:12:47 | 显示全部楼层
凌九霄 发表于 2019-4-8 17:27
你写错了,应该是这样

大神你帮我看下这段代码的返回顺序是什么啊,谢谢
QQ截图20190408181035.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-8 18:14:42 | 显示全部楼层
本帖最后由 凌九霄 于 2019-4-8 18:23 编辑

你去了解一下python的闭包就清楚了,理解了闭包,你就能理解前面的语法糖,装饰器之类的概念。

装饰器可有多个,执行的顺序就是从最后一个装饰器开始,执行到第一个装饰器,再执行被装饰函数本身。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-8 23:18:29 | 显示全部楼层
凌九霄 发表于 2019-4-8 18:14
你去了解一下python的闭包就清楚了,理解了闭包,你就能理解前面的语法糖,装饰器之类的概念。

装饰器可 ...

闭包理解,零基础开始学的,刚碰到装饰符这个概念有点懵,感谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 06:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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