这是一个学术问题,而不是一个实际问题。我正试图深入研究Python的基础,我想知道:如果我愿意,我可以用纯Python实现staticmethod
和{
对于staticmethod
也许我可以保留对原始函数的引用并调用它而忽略第一个参数?在
对于classmethod
也许我可以保留对原始函数的引用并调用它传递第一个参数的类型,而不是参数本身?(我如何处理直接在课堂上被调用的问题?)在
再说一次,我并不想在我的程序中实现它;我想从中学习语言是如何工作的。如果可以的话,我会很感激的。如果没有,我会很感激解释为什么理论上不能做到。谢谢!在
编辑:感谢您的回答和对描述符协议的引用!为了进一步扩展我对Python的理解,我想再问两件事:
在没有描述符协议的情况下,例如通过在我们的类中实现-call\uuu特殊方法,可以实现这一点吗?
描述符协议在Python2.7和Python3.x中的工作方式是否相同?
再次感谢!在
你应该接受J.F.Sebastian的回答,因为它直接回答了你的问题,但是问这个问题意味着你想知道描述符协议,你可以阅读here,这是用来实现这些和其他重要的Python内部构件的东西(如果谨慎使用,在你自己的代码中可能很有用)。
property
和常规的ol'绑定方法是使用描述符协议编写的其他东西。在你应该去看看,当你第一次读到它的时候并不是那么简单,但是它会很快的。在
the docs中有一些示例:
以及:
^{pr2}$相关问题 更多 >
编程相关推荐