gpt4 book ai didi

python - 如何在 Python 中实现 `classmethod` 和 `staticmethod` 方法?

转载 作者:IT老高 更新时间:2023-10-28 20:41:00 24 4
gpt4 key购买 nike

Python 中的方法在什么时候获取 get 属性? ——只要在类里面定义它们?为什么 Python 让我定义一个没有任何参数的方法(甚至不是第一个 self 参数)?

我知道如何使用classmethodstaticmethod,而且我知道它们是内置函数,但是这样修饰的函数会怎样呢?

基本上,我想知道类定义和类构造之间发生的“魔法”。

最佳答案

看看这个。

http://docs.python.org/howto/descriptor.html#static-methods-and-class-methods

您还可以查看 funcobject.c 中类和静态方法对象的源代码:

http://hg.python.org/cpython/file/69b416cd1727/Objects/funcobject.c

类方法对象定义从第 694 行开始,而静态方法对象定义从第 852 行开始。(当 methodobject.c 也存在时,它们在 funcobject.c 中有标题为“method”的项目,我确实觉得很有趣。)

关于python - 如何在 Python 中实现 `classmethod` 和 `staticmethod` 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6685232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com