我是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)
它让我难过。没有传递称为realpart
或imagpart
的功能,但它们会重命名为r
和i
并立即生效。它们似乎也没有内置功能。 realpart
和imagpart
如何做任何事情?
注意:我为模棱两可的标题和标签道歉,我不确定这会被称为什么。我很感激你的建议。
答案 0 :(得分: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
。
答案 1 :(得分:3)
realpart
和imagpart
是类初始值设定项__init__
的参数。当您调用Complex(3.0, -4.5)
时,这些参数将传递给该函数。该函数恰好在对象上设置一些属性以保存这些参数的值。它用行
self.r = realpart
self.i = imagpart
这些行在对象上创建属性。当您创建名为x
的对象时,它将使这些属性可以x.r
和x.i
访问。
我不确定你为什么要询问"功能"叫做realpart和imagpart。它们只是普通的变量。
您应该阅读the Python tutorial以熟悉Python的基础知识。