0

可能重复:
python'self'解释

我是 Python 的初学者。当我怀疑自己无法向自己解释时,我正在阅读有关类和迭代器的教程。下面的程序文本是计算面积的类的一部分。

def __init__(self,len,wid):
    self.length=len
    self.width=wid

def calculate_area(self)
    return self.length*self.width

def print_area(self)
    print 'Area='+str(self.calculate_area())

我无法理解的是为什么函数的参数列表有“自我”?它的作用是什么?为什么每个变量都用“self”解析?

4

2 回答 2

2

这类似于 C++ 中的 this 指针(如果您有 C++ 背景)典型的用法是,如果有歧义,对象的成员可以由 self 引用。例如

def calculate_area(self, length)
    return self.length*self.width

上述长度是 calculate_area 函数的参数。如果对象也有长度成员,那么它可以通过使用 self.length 来解决

在此处参考现有答案:

自我的目的是什么?

于 2012-07-18T09:12:51.530 回答
0

我真的不知道我对 Python 世界太陌生,但我认为 Python 不像thisC# 或 Java 那样提供价值,所以这是 Python 用来在其类中定义自身的机制。

无论如何,你可以看到你不需要self在函数调用中传递 as 参数,因为 Python 会为你做。

这是我的理论,但我也有兴趣了解它,所以如果有人能对此多说一些,我想我们将非常感激。

再见!

于 2012-07-18T09:12:53.353 回答