Скажем, у меня есть функция, и класс, как это,Возвращаемые значения из функции в качестве атрибутов класса
>>> 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
Я не думаю, что это действительно затрагивает вопрос вообще. –
@ juanpa.arrivillaga почему бы и нет? Просто «я не думаю, что это действительно затрагивает вопрос вообще», это не полезно. –
Вопрос в том, как передать кортеж в конструктор. Ваш первый вариант действительно не имеет смысла и должен быть заменен использованием оператора splat. Второй вариант делает предположения о дизайне - он может быть правильным решением, но опять же, не отвечает на заданный вопрос. –