2

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

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要传递的函数,但它们被重命名为randi并立即工作。它们似乎也不是内置函数。怎么样?在realpartimagpart什么?

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

4

2 回答 2

3

realpart 和 imagpart 是怎么做的?

他们什么也没做:他们只是给__init__. apple如果我们愿意,我们可以打电话给他们pear。当您键入

x = Complex(3.0, -4.5)

__init__传递了三个参数:

def __init__(self, realpart, imagpart):

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

于 2012-06-28T19:10:42.377 回答
3

realpart并且imagpart是类初始化器的参数__init__。当您调用 时Complex(3.0, -4.5),这些参数将传递给该函数。该函数恰好在对象上设置了一些属性以保存这些参数的值。它用线条做到这一点

    self.r = realpart
    self.i = imagpart

这些行在对象上创建属性。当您创建一个名为 的对象x时,它将具有可作为x.r和访问的那些属性x.i

我不确定您为什么要询问名为 realpart 和 imagpart 的“函数”。它们只是普通的变量。

您应该阅读Python 教程以熟悉 Python 的基础知识。

于 2012-06-28T19:10:53.203 回答