Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python多变量声明_Python_Scipy - Fatal编程技术网

Python多变量声明

Python多变量声明,python,scipy,Python,Scipy,我正在读一本书,他们在书中写道: fp1, residuals, rank, sv, rcond = sp.polyfit(x, y, 1, full=True) 似乎sp.polyfit方法以某种顺序为这些变量赋值 例如: >>> print("Model parameters: %s" % fp1) Model parameters: [ 2.59619213 989.02487106] >>> print(res) [ 3.17389767e+08]

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

fp1, residuals, rank, sv, rcond = sp.polyfit(x, y, 1, full=True)
似乎
sp.polyfit
方法以某种顺序为这些变量赋值

例如:

>>> print("Model parameters: %s" % fp1)
Model parameters: [ 2.59619213 989.02487106]
>>> print(res)
[ 3.17389767e+08]
(我不知道在哪里定义了
res
,但是…)这是Python创建对象的方式吗

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

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

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

这与对象创建无关——这是python中解包(或更一般地说是序列)的一个示例

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

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

a = 1
b = 'two'
c = 3.0
(请注意,您可以使用此语法交换项目:
a,b=b,a

所以在你的例子中发生的是,有一条线

return fp, resides, rank, eval, rcondnum

您正在将变量分配给这些对象。

这与对象创建无关——这是python中解包(或更一般地说是序列)的一个示例

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

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

a = 1
b = 'two'
c = 3.0
(请注意,您可以使用此语法交换项目:
a,b=b,a

所以在你的例子中发生的是,有一条线

return fp, resides, rank, eval, rcondnum
您正在为这些变量赋值。

这是元组解包

假设你有一些元组:

t = (1, 2, 3)
然后您可以使用它设置三个变量:

x, y, z = t  # x becomes 1, y 2, y 3
函数sp.polyfit只返回一个元组

实际上,它适用于任何iterable,不仅仅是元组,但使用元组是目前最常见的方法。此外,iterables中的元素数必须与变量数完全相等。

这是元组解包

假设你有一些元组:

t = (1, 2, 3)
然后您可以使用它设置三个变量:

x, y, z = t  # x becomes 1, y 2, y 3
函数sp.polyfit只返回一个元组


实际上,它适用于任何iterable,不仅仅是元组,但使用元组是目前最常见的方法。此外,iterables中的元素数必须与变量数完全相等。

一个方法返回多个变量似乎很奇怪。我不记得在其他语言(C#、VB、Java、PHP)中看到过这种情况。这是Python的事情吗?其他语言必须做更多的工作来做同样的事情(返回一个结构、一个类实例或一个hashmap…),这将取代(某些)其他语言的Python所没有的东西(或者不是微不足道的):无法更改传递给函数的变量的值。方法返回多个变量似乎很奇怪。我不记得在其他语言(C#、VB、Java、PHP)中看到过这种情况。这是Python的事情吗?其他语言必须做更多的工作来做同样的事情(返回一个结构、一个类实例或一个hashmap…)这取代了(某些)其他语言的Python所没有的东西(或者不是微不足道的):你不能更改传递给函数的变量的值。知道在哪里
print(res)
是否正在定义?我想代码上写的是
res
,但他们的意思是说
残差
?我想是的,我甚至不知道它是哪本书也很难说出来:-)对不起,它正在用Python构建机器学习系统。我只是想理解其中的代码。无论如何,谢谢。知道在哪里定义了
print(res)
?我想代码上写的是
res
,但他们的意思是说
残差
?我想是的,我甚至不知道它是哪本书也很难说出来:-)对不起,它正在用Python构建机器学习系统。我只是想理解其中的代码。无论如何,谢谢你。