在python的类函数中传递自引用值的原因是什么?例如:
class MyClass:
"""A simple example class"""
i = 12345
def f(**self**):
return 'hello world'
通过这样做,你不是在做编译器的工作吗?
答案 0 :(得分:9)
多年来,许多电子一直在讨论这个问题。
Guido(蟒蛇的创造者)在他的博客here中对这个问题进行了权衡,以回应去年proposal以摆脱明确的自我。 python FAQ也covers the issue。
最后,如果你不介意一些灰色魔法,你可以use a metaclass to get rid of it。虽然有充分的理由说明你不应该这样做(它会破坏属性,让你更难理解别人的代码,并且会让任何其他查看代码的python程序员感到困惑。)
答案 1 :(得分:2)