澄清python中的类

时间:2012-06-28 19:05:42

标签: python class

我是Python新手(来自MATLAB),并开始了解类是模块化程序的好方法。我知道它们就像一个可以简化流程的“蓝图”,但我认为我对此的理解是错误的。我正在阅读documentation并看到了这个例子:

class Complex:
    def __init__(self, realpart, imagpart):
        self.r = realpart
        self.i = imagpart

x = Complex(3.0, -4.5)
x.r, x.i

输出

(3.0, -4.5)

它让我难过。没有传递称为realpartimagpart的功能,但它们会重命名为ri并立即生效。它们似乎也没有内置功能。 realpartimagpart如何做任何事情?

注意:我为模棱两可的标题和标签道歉,我不确定这会被称为什么。我很感激你的建议。

2 个答案:

答案 0 :(得分:3)

  

realpart和imagpart如何做任何事情?

他们没有做任何事情:他们只是给__init__的论据的名字。如果我们愿意,我们可以称他们为applepear。当您键入

x = Complex(3.0, -4.5)

__init__传递三个参数:

def __init__(self, realpart, imagpart):

实例本身(传统上称为self),第一个显式参数传递(3.0),第二个显式参数传递(-4.5)。然后,它将这些实例变量存储在self.rself.i

答案 1 :(得分:3)

realpartimagpart是类初始值设定项__init__的参数。当您调用Complex(3.0, -4.5)时,这些参数将传递给该函数。该函数恰好在对象上设置一些属性以保存这些参数的值。它用行

来做到这一点
    self.r = realpart
    self.i = imagpart

这些行在对象上创建属性。当您创建名为x的对象时,它将使这些属性可以x.rx.i访问。

我不确定你为什么要询问"功能"叫做realpart和imagpart。它们只是普通的变量。

您应该阅读the Python tutorial以熟悉Python的基础知识。