Есть ли способ в Python возвращать значение через выходной параметр?

На некотором языке функция возвращает значение с использованием параметров, также как и C #. Давайте взглянем на пример

class OutClass { static void OutMethod(out int age) { age = 26; } static void Main() { int value; OutMethod(out value); // value is now 26 } } 

Так что там что-то похожее в Python, чтобы получить значение, используя параметр.

6 Solutions collect form web for “Есть ли способ в Python возвращать значение через выходной параметр?”

Нет причин, поскольку Python может возвращать несколько значений:

 def func(): return 1,2,3 a,b,c = func() 

Но вы также можете передать изменяемый параметр и возвращать значения:

 def func(a): a.append(1) a.append(2) a.append(3) L=[] func(L) print L , def func(a): a.append(1) a.append(2) a.append(3) L=[] func(L) print L 

Вы имеете в виду прохождение по ссылке?

Для объекта Python по умолчанию передается по ссылке. Тем не менее, я не думаю, что вы можете изменить ссылку в Python (иначе это не повлияет на исходный объект).

Например:

 def addToList(theList): theList.append(3) theList.append(4) def addToNewList(theList): theList = list() theList.append(3) theList.append(4) myList = list() myList.append(1) myList.append(2) addToList(myList) print(myList) addToNewList(myList) print(myList) 

Передайте список или что-то в этом роде и поставьте туда возвращаемое значение.

Кроме того, если вам нравится читать какой-то код, я думаю, что pywin32 имеет способ обработки выходных параметров.

В Windows API распространенная практика заключается в том, чтобы в значительной степени полагаться на выходные параметры, поэтому я полагаю, что они каким-то образом справились с этим.

Вы можете сделать это с изменяемыми объектами, но в большинстве случаев это не имеет смысла, потому что вы можете вернуть несколько значений (или словарь, если вы хотите изменить возвращаемое значение функции, не нарушая при этом существующие вызовы).

Я могу только думать о одном случае, когда вам может понадобиться это – это потоковая передача, или, точнее, передача значения между потоками.

 def outer(): class ReturnValue: val = None ret = ReturnValue() def t(): # ret = 5 won't work obviously because that will set # the local name "ret" in the "t" function. But you # can change the attributes of "ret": ret.val = 5 threading.Thread(target = t).start() # Later, you can get the return value out of "ret.val" in the outer function 

Если выходные данные являются строками и числами или являются одномерными массивами строк и чисел (как правило, варианты ), вы можете получить их с помощью MS Excel , я предоставил решение, которое я использовал в приложении когда я столкнулся с такой проблемой с AutoCAD (задал вопрос, но не получил никакого ответа), вы можете проверить мое решение здесь

  • Reimport модуль в python, в то время как интерактивный
  • Как проверить, нет ли всех элементов в списке?
  • стройный и matplotlib point-in-polygon неточный с геолокацией
  • Google App Engine - как расширить db.IntegerProperty
  • Python "Сервер задач"
  • Ошибка отпечатка Python:
  • Скрытие данных в классе Python
  • Как переопределить поведение списка Python (итератор)?
  • Python - лучший язык программирования в мире.