logo

Як передати додаткові параметри функції в Python?

У Python, коли ми визначаємо функції зі значеннями за замовчуванням для певних параметрів, кажуть, що її аргументи встановлюються як параметр для користувача. Користувачі можуть або передавати свої значення, або робити вигляд, що функція використовує їхні значення за замовчуванням, які вказані.

Таким чином, користувач може викликати функцію, передавши ці додаткові параметри або просто передавши необхідні параметри.



Існує два основних способи передачі додаткових параметрів у python

повернення масивів у java
  • Без використання ключових аргументів.
  • За допомогою ключових аргументів.

Передача без використання ключових аргументів

Деякі головні моменти, на які слід звернути увагу під час передачі без використання ключових аргументів:

  • Слід підтримувати порядок параметрів, тобто порядок, у якому параметри визначені у функції, слід підтримувати під час виклику функції.
  • Необхідно передати значення необов’язкових параметрів, інакше виникне помилка.
  • Значення аргументів за замовчуванням можна передати або проігнорувати.

Нижче наведено кілька кодів, які пояснюють цю концепцію.



приклад 1:

Python3






# Here b is predefined and hence is optional.> def> func(a, b>=>1098>):> >return> a>+>b> print>(func(>2>,>2>))> # this 1 is represented as 'a' in the function and> # function uses the default value of b> print>(func(>1>))>

>

>

Вихід:

4 1099>

приклад 2: ми також можемо передавати рядки.

Python3




# Here string2 is the default string used> def> fun2(string1, string2>=>'Geeks'>):> >print>(string1>+> string2)> # calling the function using default value> fun2(>'GeeksFor'>)> # calling without default value.> fun2(>'GeeksFor'>,>'Geeks'>)>

кнопка tkinter
>

>

Вихід:

GeeksForGeeks GeeksForGeeks>

Передача з ключовими аргументами

Коли функції визначено, параметри записуються у формі типу даних ключове слово-ім’я. Отже, Python надає механізм виклику функції за допомогою назви ключового слова для передачі значень. Це допомагає програмісту, позбавляючи його від необхідності вивчати послідовність або порядок, у якому параметри повинні бути передані.

Ось кілька важливих моментів, які ми повинні пам’ятати:

  • У цьому випадку нам не потрібно підтримувати порядок передачі значень.
  • Між переданими та оголошеними назвами ключових слів не повинно бути різниці.

Нижче наведено код для його реалізації.

Python3




# Here string2 is the default string used> def> fun2(string1, string2>=>'Geeks'>):> >print>(string1>+> string2)> # Thiscan be a way where no order is needed.> fun2(string2>=>'GeeksFor'>, string1>=>'Geeks'>)> # since we are not mentioning the non-default argument> # so it will give error.> fun2(string2>=>'GeeksFor'>)>

>

>

Вихід:

Як ми бачимо, у наведеному вище прикладі нам не потрібно підтримувати порядок. Крім того, ми бачимо, що коли ми намагаємося передати лише необов’язкові параметри, це викликає помилку. Це трапляється, оскільки необов’язкові параметри можна пропустити, оскільки вони мають значення за замовчуванням, але ми не можемо пропустити обов’язкові параметри (рядок1 у наведеному вище випадку). Отже, відображається помилка з прапорцем: відсутній 1 обов’язковий аргумент.

Цей приклад дасть більше розуміння вищезазначеної теми:

Python3




def> func(a, b, c>=>'geeks'>):> >print>(a,>'type is'>,>type>(a))> >print>(b,>'type is'>,>type>(b))> >print>(c,>'type is'>,>type>(c))> # The optional parameters will not decide> # the type of parameter passed.> # also the order is maintained> print>(>'first call'>)> func(>2>,>'z'>,>2.0>)> # below call uses the default> # mentioned value of c> print>(>'second call'>)> func(>2>,>1>)> # The below call (in comments) will give an error> # since other required parameter is not passed.> # func('a')> print>(>'third call'>)> func(c>=>2>, b>=>3>, a>=>'geeks'>)>

>

>

Вихід:

first call 2 type is z type is 2.0 type is second call 2 type is 1 type is geeks type is third call geeks type is 3 type is 2 type is>

Отже, в основному функціональні виклики Python перевіряють лише те, чи передана необхідна кількість функціональних параметрів, чи ні.

Нижче показано випадок, коли користувач намагається передати аргументи обома способами, описаними вище, разом із застережними заходами:

Python3




def> comp(a, b>=>2>):> >if>(a print('first parameter is smaller') if(a>b): print('другий параметр менший') if(a == b): print('обидва мають однакове значення.') print('перший виклик') comp(1) print( 'другий виклик') comp(2, 1) print('третій виклик') comp(b=1, a=-1) print('четвертий виклик') comp(-1, b=0 )>

>

if else цикл у java
>

Вихід:

first call first parameter is smaller second call second parameter is smaller third call first parameter is smaller fourth call first parameter is smaller>

Тому ми повинні пам’ятати одну річ: аргумент ключового слова слід використовувати після того, як передано всі позиційні аргументи. Отже, це важлива річ, яку ми повинні пам’ятати, передаючи параметри обома способами одній функції.