Argumente poziționale vs. cuvinte cheie
Articol conex:
- Funcții
- Pasarea unei funcții ca argument
- Asteriscuri în Python
Transcript:
Să vorbim despre cele două tipuri de argumente pe care le puteți folosi atunci când apelați o funcție:argumente poziționale și argumente numite (a.k.a. argumente de tip cuvânt cheie).
Argumente poziționale
Când apelați funcția încorporată print
, puteți trece orice număr de argumente în mod pozițional.Noi trecem aici patru argumente poziționale:
>>> print(2, 1, 3, 4)2 1 3 4
Noi le numim argumente poziționale pentru că poziția lor contează.Ordinea acestor argumente este semnificativă: primul argument se tipărește primul; ultimul se tipărește ultimul.
Argumente cuvânt cheie (a.k.a. argumente numite)
Funcția print
acceptă, de asemenea, unele argumente ca argumente cuvânt cheie.
Funcția print
acceptă un argument opțional sep
(care are ca valoare implicită un caracter spațiu).
>>> print(2, 1, 3, 4, sep=' ')2 1 3 4>>> print(2, 1, 3, 4)2 1 3 4>>> print(2, 1, 3, 4, sep='-')2-1-3-4>>> print(2, 1, 3, 4, sep=', ')2, 1, 3, 4
Acest argument sep
definește separatorul care ar trebui să fie tipărit între fiecare dintre argumentele poziționale date lui print
.
Există, de asemenea, un argument opțional end
de tip cuvânt cheie.Argumentul end
are ca valoare implicită un caracter newline:
>>> print(2, 1, 3, 4, sep=', ', end='\n')2, 1, 3, 4
Dar putem pune câteva semne de exclamare în argumentul end
(înainte de newline) pentru a tipări semne de exclamare la sfârșit:
>>> print(2, 1, 3, 4, sep=', ', end='!!\n')2, 1, 3, 4!!
Ordinea argumentelor cuvintelor cheie nu contează
Ordinea argumentelor sep
și end
ale funcției print
nu contează de fapt.
>>> print(2, 1, 3, 4, end='!!\n', sep=', ')2, 1, 3, 4!!
Ordinea nu contează în cazul acestora deoarece nu sunt argumente poziționale: sunt argumente numite.
Argumentele poziționale au virgule între valorile lor.
>>> print(2, 1, 3, 4)2 1 3 4
Argumentele de tip cuvânt cheie (a.k.a. named arguments) au un nume și un semn egal în plus față de acele valori și virgule.
>>> print(2, 1, 3, 4, sep=',', end='!\n')2,1,3,4!
Argumentele prin cuvinte cheie trebuie să vină după orice argumente poziționale.Dincolo de asta, poziția argumentelor prin cuvinte cheie nu contează deloc: numele este cel care contează, nu poziția.
Utilizarea argumentelor prin cuvinte cheie în locul argumentelor poziționale
Argumentele prin cuvinte cheie nu sunt utile doar pentru funcțiile care acceptă orice număr de argumente poziționale (cum ar fi print
).Puteți trece argumente prin cuvinte cheie la aproape orice funcție din Python.
De exemplu, funcția încorporată sum
acceptă un prim argument:
>>> sum()10
Dar acceptă și un al doilea argument, care are valoarea implicită zero:
>>> sum(, 0)10
Dacă schimbăm acest al doilea argument în 1
, vom vedea că aceasta este valoarea de început pentru suma returnată:
>>> sum(, 1)11
Aș prefera să văd această funcție apelată astfel:
>>> sum(, start=1)11
Pasăm un argument pozițional și un argument de tip cuvânt cheie.
Acest start=1
funcționează cu sum
pentru că start
este numele acelui argument.În documentația pentru funcția sum
se spune că al doilea argument care se numește start
:
>>> help(sum)Help on built-in function sum in module builtins:sum(iterable, /, start=0) Return the sum of a 'start' value (default: 0) plus an iterable of numbers When the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types.
Deci, atunci când lucrați cu argumente numite (a.k.a. argumente prin cuvinte cheie), numele argumentului chiar contează!În timp ce atunci când lucrați cu argumente poziționale, poziția este cea care este semnificativă.
Summary
Când apelăm o funcție în Python, putem trece două tipuri diferite de argumente:
- argumente poziționale
- argumente numite (a.k.a. keyword arguments)
Argumentele cu nume pot face uneori codul dvs. un pic mai descriptiv, deoarece ați dat un nume unui obiect a cărui utilizare ar putea altfel să nu fie clară prin simpla sa poziție într-un apel de funcție.
Vreți să vedeți mai multe subiecte Python explicate?
Bună ziua, prietene vizitator web! 👋
Această pagină face parte din Python Morsels, un serviciu online de dezvoltare a abilităților Python.
Cel mai bun mod de a învăța este să faci. În cazul Python, asta înseamnă să scrii cod Python. Dacă doriți să vă îmbunătățiți abilitățile Python în fiecare săptămână, încercați Python Morsels introducând e-mailul dvs. mai jos pentru a vă crea un cont.
Paginile cu subiecte Python Morsels sunt gratuite, iar prima lună de exerciții este, de asemenea, gratuită. Nu este nevoie să introduceți detalii de plată pentru a vă înscrie.
Puteți găsi explicații despre multe alte subiecte Python dacă vă înregistrați mai jos.
Înregistrându-vă, sunteți de acord cu Politica de confidențialitate.