python - 函数的返回值作为类属性

标签 python function python-3.x parameter-passing

假设我有一个像这样的函数和类,

>>> def something():
...     x = 5 
...     y = 6
...     return x, y

>>> class SomethingElse():
...     def __init__(self, x, y):
...             self.x = x
...             self.y = y
...             print(x+y)
... 

我想将函数返回的内容作为属性传递给我的类,这可以吗?因为当我调用我的函数时,我只将它作为 1 个属性。

>>> S = SomethingElse(5, 6)
11
>>> S1 = SomethingElse(something)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: __init__() missing 1 required positional argument: 'y'

我真正想要的是,

>>> S1 = SomethingElse(something)
11

最佳答案

您可以使用 splat(或“解包”)运算符 *,如下所示

>>> SomethingElse(*something())
11

这可以在 Unpacking Argument Lists 中看到在 Python 教程中,通常称为参数解包。

关于python - 函数的返回值作为类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773451/

相关文章:

python - 从字符串中提取换行符

Python 或 Powershell — 读取 csv 并排序和收集要在电子邮件中发送的数据

jquery - 常见补间/缓动函数的在线图表?

c - 使用指针在 C 中删除重复项时出错

python - 创建一个字符串是否存在于 Pandas 数据框中的二进制表示

python - 如何随机选取json数据

python - Django ORM - 如何在具有多对多字段的两个条件下加入

function - p5.j​​s 如何使函数 setup() 像这样工作?

python pip 给出 : "no such option: -r"

python - 如何在 python 中创建一个在 while 循环中每次累加的函数