Python多变量声明

2024-10-04 07:35:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在读一本书,他们在书中写道:

fp1, residuals, rank, sv, rcond = sp.polyfit(x, y, 1, full=True)

似乎sp.polyfit方法按某种顺序为这些变量分配值。在

例如:

^{pr2}$

{cd2>不知道在哪里定义的。。。但是…)这是Python创建对象的方式吗?在

在其他语言中,您可能会执行以下操作:

Foo myFooObject = bar.GenerateFoo();
myFooObject.foo();
myFooObject.bar();

python的一般语法以这种方式让我感到困惑。谢谢你帮我理解。在


Tags: 方法true顺序方式barspfullrank
2条回答

这是元组解包。

假设你有一些元组:

t = (1, 2, 3)

然后你可以用它来设置三个变量:

^{pr2}$

你的职能聚合体只返回一个元组。

实际上,它可以与任何iterable一起工作,不仅仅是元组,但是使用元组进行操作是迄今为止最常见的方法。此外,iterables中元素的数量必须完全等于变量的数量。

这与对象创建无关,这是python中tuple(或更普遍的序列)解包的一个例子。

元组是一个固定的项目序列,您可以通过以下命令将一个集分配给另一个

a, b, c = 1, 'two', 3.0

这和

^{pr2}$

(请注意,可以使用以下语法来交换项:a, b = b,a。)

所以在您的例子中,scipy.poylfit有一行类似

return fp, resides, rank, eval, rcondnum

你给这些变量赋值。

相关问题 更多 >