В последней статье мы обсудили следующее
- Условные операторы
- Блоки
- Операторы сравнения
- Логические операторы
- Истинные и ложные ценности
- Тернарные операторы
- Случаи переключения
Сегодня мы обсудим следующее
- Определения функций
- Позиционные и ключевые слова/именованные параметры
- Стрелочные функции в Javascript
Определения функций
В этом разделе мы обсудим основной способ определения функций в Python и JavaScript. Мы будем определять функцию с именем func. Он просто рассчитает сумму 10,20 и вернет сумму
питон
Ниже приведен синтаксис функции в Python.
def functionName():
'''
SOME CODE
'''
pass
Теперь давайте определим функцию func, которую мы обсуждали ранее.
def func(): sum = 10 + 20 return sum
# Calling the function func func()
JavaScript
Ниже приведен общий синтаксис функции.
function functionName(){
/*
SOME CODE
*/
pass
}
Давайте определим функцию func в javascript.
function func(){ let sum = 10 + 20 return sum }
// Caling the function func func()
Параметры
Если вы хотите узнать о позиционных и ключевых аргументах, ознакомьтесь с этой статьей.
питон
- Python поддерживает параметры по умолчанию и параметры, отличные от параметров по умолчанию.
- Python может принимать позиционные и ключевые аргументы
- В Python при вызове функции позиционные аргументы НЕ МОГУТ следовать за аргументами ключевого слова.
- В Python, если мы не передаем аргумент для параметров, отличных от значений по умолчанию, Python вызовет исключение.
''' Default Parameter ''' def func1(num1 , num2 = 10): return num1 + num2
print( func1(10) ) # OUTPUT: 20 print ( func1(1,1) ) # OUTPUT: 2
''' Positional and Keyword Arguments ''' def func2(num1 , num2 , num3, num4): return num1 + num2 + num3 + num4
print( func2(10,10,num3=30,num4=5) )# OUTPUT: 55
print( func2(10,num2=10,10,num4=10) ) # ERROR
''' Not passing an argument for non-default parameters ''' print( func2(10,10,num3=30) )# OUTPUT: TypeError
JavaScript
- JavaScript поддерживает параметры по умолчанию и параметры, отличные от параметров по умолчанию.
- JavaScript может принимать как позиционные, так и именованные аргументы. Именованные аргументы в JavaScript аналогичны аргументам ключевых слов в Python.
- В JavaScript при вызове функции позиционные аргументы могут следовать за именованными аргументами. Однако вам необходимо соблюдать порядок аргументов и параметров. Мы обсудим это ниже
- В JavaScript, если вы не передадите аргумент для параметров, отличных от значений по умолчанию, для параметра будет установлено значение undefined. В отличие от Python, JavaScript не возвращает ошибку.
/* Default Parameters */ function func1(num1 , num2 = 10){ return num1 + num2 }
console.log(func1(10)) // OUTPUT: 20 console.log(func1(1,1)) // OUTPUT: 2
/* Not passing an argument for non-default parameters */ function func2(num1,num2,num3,num4){ return num1+num2+num3+num4 }
console.log(func2(10,20,30)) // OUTPUT: Nan
Как упоминалось выше, порядок позиционных и именованных аргументов не имеет значения, но вы должны быть осторожны при их использовании.
function func2(num1,num2,num3,num4){
console.log("num1: " + num1)
console.log("num2: " + num2)
console.log("num3: " + num3)
console.log("num4: " + num4)
}
Мы попробуем передать позиционные и именованные аргументы в вышеуказанную функцию.
func2(10,20,num3=30,num4=40) /* num1: 10 num2: 20 num3: 30 num4: 40 */
func2(10,20,num3=30,40) /* num1: 10 num2: 20 num3: 30 num4: 40 */
Но вот это становится странным
func2(10,num3=30,20,40)
/*
num1: 10
num2: 30
num3: 20
num4: 40
*/
Хотя мы явно устанавливаем num3 равным 30, внутри функции num2 устанавливается равным 30, а num3 устанавливается равным 20. Нам нужно соблюдать порядок параметров. Если порядок параметров не соблюдается, параметры устанавливаются в соответствующие значения аргументов (независимо от того, являются ли они позиционными или именованными).
func2(10,num1=30,20,40)
/*
num1: 10
num2: 30
num3: 20
num4: 40
*/
Стрелочные функции в JavaScript
Хотя это и не связано, Python поддерживает лямбда-функции, вы можете узнать больше о них здесь.
JavaScript поддерживает стрелочные функции. Это просто более чистая версия определения функций. Ниже представлена шпаргалка. Стрелка представляет собой знак равенства (=), за которым следует знак больше (›)
Первоначально опубликовано на https://www.realpythonproject.com 24 апреля 2021 г.