这是一个学术问题,而不是一个实际问题。我正在尝试深入研究 Python 的基础,我想知道:如果我愿意,我可以在纯 Python 中实现staticmethod
和装饰器吗?classmethod
因为staticmethod
也许我可以保留对原始函数的引用并将其称为省略第一个参数?
因为classmethod
也许我可以保留对原始函数的引用并调用它传递第一个参数的类型,而不是参数本身?(我将如何处理在课堂上直接调用它?)
同样,我并不是想在我的程序中实际实现它。我想了解语言是如何工作的。如果有可能,我将非常感谢代码示例。如果没有,我会很感激解释为什么理论上不能做到。谢谢!
编辑:感谢您的回答和对描述符协议的参考!为了进一步扩展我对 Python 的理解,我想再问两件事:
这是否可以在没有描述符协议的情况下完成,例如通过在我们的类中实现 __ call __ 特殊方法?
描述符协议在 Python 2.7 和 Python 3.x 中的工作方式是否相同?
再次感谢!