在Python中将self传递给类函数

时间:2009-02-03 23:17:04

标签: python function class

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

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

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

2 个答案:

答案 0 :(得分:9)

多年来,许多电子一直在讨论这个问题。

Guido(蟒蛇的创造者)在他的博客here中对这个问题进行了权衡,以回应去年proposal以摆脱明确的自我。 python FAQ也covers the issue

最后,如果你不介意一些灰色魔法,你可以use a metaclass to get rid of it。虽然有充分的理由说明你不应该这样做(它会破坏属性,让你更难理解别人的代码,并且会让任何其他查看代码的python程序员感到困惑。)

答案 1 :(得分:2)