在类中声明函数

时间:2012-07-18 09:08:15

标签: python class syntax

  

可能重复:
  python 'self' explained

我是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”?它的作用是什么?为什么每个变量都用“self”解决?

2 个答案:

答案 0 :(得分:2)

这与C ++中的这个指针类似(如果你来自C ++背景) 典型的用法是,如果存在歧义,可以由self引用对象的成员。 e.g。

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

以上长度是calculate_area函数的参数。 如果对象也有长度成员,则可以使用self.length

解析它

请参阅现有答案:

What is the purpose of self?

答案 1 :(得分:0)

我真的不知道我在Python世界上太新了,但我认为Python不像C#或Java那样提供this值,所以这就是Python的机制用于在其类中定义自己。

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

这是我的理论,但我也有兴趣了解它如果有人可以多说一点,我想我们会非常感激。

见到你!