在python中将self传递给类函数

Passing self to class functions in Python

本问题已经有最佳答案,请猛点这里访问。

在Python的类函数中传递自引用的值的原因是什么?例如:

1
2
3
4
5
class MyClass:
   """A simple example class"""
    i = 12345
    def f(**self**):
        return 'hello world'

通过这样做,你不是在做编译器的工作吗?


多年来,许多电子都献出了生命来讨论这个问题。

guido(python的创建者)在他的博客中对这个问题进行了讨论,以回应去年提出的摆脱外在自我的建议。python常见问题解答也涵盖了这个问题。

最后,如果你不介意一点灰色魔法,你可以使用一个元类来摆脱它。尽管有很好的理由不应该这样做(它会破坏属性,使您更难理解其他人的代码,并且会混淆其他查看您的代码的Python程序员)。


guido说:http://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay.html