Возвращаемое значение функции python

#python-3.x

Вопрос:

Я новичок в python. Все ли функции python возвращают какое-то значение? Каким будет возвращаемое значение следующей функции?

 import math

def getQuadratic(a,b):
    square = a**2   b**2
    squareRoot = math.sqrt(square)
    return squareRoot
print("The square root of the sum of the squares of 3 and 4 is:", getQuadratic(3,4))
 

Ответ №1:

Чтобы оценить тип, возвращаемый функцией Python, вам нужно просмотреть КАЖДЫЙ return оператор, потому что каждый может возвращать что-то другое. И если функция не имеет явного return значения , return None в конце есть подразумеваемое.

В вашем случае есть только один return , и легко понять, какой тип он возвращает.

Ответ №2:

Все методы python что-то возвращают. Даже если у вас нет заявления о возврате, они все равно вернутся None .

 def my_function():
    pass

print(my_function())
>>> None
 

Ответ №3:

Эта функция определенно что-то возвращает. Он возвращает значение переменной squareRoot. Поэтому, когда вы выполняете инструкцию print, возвращенное значение печатается вместе со строкой перед ним.

Ответ №4:

Python, будучи динамически типизированным языком, не требует от вас определения какого-либо типа переменных или функций.

Все в python является объектом первого класса.

На вашем примере:

 import math

def getQuadratic(a,b):
  square = a2   b2  # is this square? a**2?
  squareRoot = math.sqrt(square)
  return squareRoot 

print("The square root of the sum of the squares of 3 and 4 is:", getQuadratic(3,4))

 

Переменные a b могут принимать любое значение.
Python делает это, превращая все в объект python.
Так что проще думать об этом таким образом. int является ли ваш эквивалент C , однако, в python он рассматривается как class <int>

Однако теперь возможна статическая типизация. Это все еще зависит от структуры, в которой будет использоваться статическая типизация. Но ваша эквивалентная программа на python интерпретируется как:

 import math

def getQuadratic(a:int,b:int) -> float:
  square = a2   b2  # is this square? a**2?
  squareRoot = math.sqrt(square)
  return squareRoot 

print("The square root of the sum of the squares of 3 and 4 is:", getQuadratic(3,4))

 

TL;DR

В прямом ответе на ваш вопрос,

  • python не требует никаких типов
  • a = 1 является действительным.
  • a = 'SoF' все еще действует
  • где a находится объект Python и может быть выделен любому другому объекту python, такому как значение, строка, функции или целые модули.
  • На самом деле это не имеет большого значения для типов. Так устроен Python.

Комментарии:

1. Несмотря на полезную информацию, в вопросе ничего не говорилось о типах