pandarking 发表于 2019-4-8 16:59:23

搞不懂python第40讲扩展的修饰符

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

      # 将 foo() 方法设置为静态方法
      foo = staticmethod(foo)
答案是:
class CodeA:
      @staticmethod#这里的缩进为什么和下面不一样,要两个缩进
    def foo():
      print("调用静态方法 foo()")

然后用修饰符简化代码的操作我也不太懂,有没有大神帮忙解释一下{:9_221:}

凌九霄 发表于 2019-4-8 17:27:39

本帖最后由 凌九霄 于 2019-4-8 17:39 编辑

你写错了,应该是这样
class CodeA:
    @staticmethod
    def foo():
      print("调用静态方法 foo()")

这个语法糖的实质就是执行的foo = staticmethod(foo)

pandarking 发表于 2019-4-8 17:44:00

凌九霄 发表于 2019-4-8 17:27
你写错了,应该是这样




正常缩进就可以了是么,答案是给错了么?

凌九霄 发表于 2019-4-8 18:11:42

pandarking 发表于 2019-4-8 17:44
正常缩进就可以了是么,答案是给错了么?

答案如果那么写肯定是错了

pandarking 发表于 2019-4-8 18:12:47

凌九霄 发表于 2019-4-8 17:27
你写错了,应该是这样




大神你帮我看下这段代码的返回顺序是什么啊,谢谢

凌九霄 发表于 2019-4-8 18:14:42

本帖最后由 凌九霄 于 2019-4-8 18:23 编辑

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

装饰器可有多个,执行的顺序就是从最后一个装饰器开始,执行到第一个装饰器,再执行被装饰函数本身。

pandarking 发表于 2019-4-8 23:18:29

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

装饰器可 ...

闭包理解,零基础开始学的,刚碰到装饰符这个概念有点懵,感谢解答
页: [1]
查看完整版本: 搞不懂python第40讲扩展的修饰符