*args ja **kwargs Pythoni funktsioonide definitsioonides

Python

Pythoni funktsiooniparameetrite uurimine

Pythonis on paindlike ja dünaamiliste funktsioonide kirjutamiseks ülioluline mõista *args ja kwargs kasutamist. Need spetsiaalsed süntaksielemendid võimaldavad arendajatel edastada funktsioonile muutuva arvu argumente, muutes koodi korduvkasutatavamaks ja tõhusamaks.

Selles artiklis uurime, mida tähendavad sümbolid * (üks tärn) ja (kaks tärn), kui neid kasutatakse funktsiooni parameetrites. Vaatame ka praktilisi näiteid selle kohta, kuidas kasutada *args ja kwargs oma koodis erinevate stsenaariumide käsitlemiseks.

Käsk Kirjeldus
*args Võimaldab funktsioonil aktsepteerida muutuva arvu positsiooniargumente. Argumendid edastatakse korteegina.
kwargs Võimaldab funktsioonil aktsepteerida muutuva arvu märksõnaargumente. Argumendid antakse edasi sõnaraamatuna.
print() Väljastab määratud teate konsooli või muule standardsele väljundseadmele.
get() Otsib sõnastikust määratud võtmega seotud väärtuse. Tagastab vaikeväärtuse, kui võtit ei leita.
join() Ühendab itereeritava elemendid (nt loendi või korteeži) üheks stringiks määratud eraldajaga.
f-string Vormindatud stringliteraal, mis võimaldab sulgudes olevaid avaldisi käitusajal hinnata.

Sukelduge Pythonis *argidesse ja kwargidesse

Pakutud skriptid näitavad, kuidas seda kasutada ja Pythoni funktsioonide määratlustes. Esimene skript määratleb funktsiooni selleks on vaja kahte nõutavat argumenti, x ja , millele järgneb suvaline arv täiendavaid positsiooniargumente, mida esindab . Helistades lisaargumentidega püütakse need korteegina ja trükitakse. See võimaldab funktsioonil erinevat arvu argumente graatsiliselt käsitleda. Teine funktsioon, bar, aktsepteerib kahte nõutavat argumenti ja suvalise arvu märksõnaargumente kaudu . Need märksõnaargumendid kogutakse sõnastikku, mis võimaldab funktsioonil töödelda paindlikke nimega sisendeid.

Teine näidisskript tutvustab ja funktsioonid, mille kasutamist veelgi illustreerivad ja kwargs. The prindib nii positsiooni- kui ka märksõnaargumendid, näidates nende kogu vastavalt korteežidesse ja sõnaraamatutesse. The funktsioon tõstab esile praktilise kasutusjuhtumi, kus võimaldab kasutada valikulisi märksõnaargumente, näiteks kohandatavat tervitussõnumit. Võimendades get() peal sõnastikku, võib funktsioon pakkuda vaikeväärtust, kui tervitusmärksõna pole esitatud, näidates nende konstruktsioonide kasutamise paindlikkust ja võimsust reaalsetes stsenaariumides.

*args ja kwargs kasutamine Pythoni funktsioonides

Python

def foo(x, y, *args):
    print("Required arguments:", x, y)
    print("Additional arguments:", args)

def bar(x, y, kwargs):
    print("Required arguments:", x, y)
    print("Keyword arguments:", kwargs)

foo(1, 2, 3, 4, 5)
# Output:
# Required arguments: 1 2
# Additional arguments: (3, 4, 5)

bar(1, 2, a=3, b=4, c=5)
# Output:
# Required arguments: 1 2
# Keyword arguments: {'a': 3, 'b': 4, 'c': 5}

*argi ja kwargi kasutamise mõistmine

Python

def example_function(*args, kwargs):
    print("Positional arguments:", args)
    print("Keyword arguments:", kwargs)

example_function(1, 2, 3, a="apple", b="banana")
# Output:
# Positional arguments: (1, 2, 3)
# Keyword arguments: {'a': 'apple', 'b': 'banana'}

def greet(name, *args, kwargs):
    greeting = kwargs.get('greeting', 'Hello')
    print(f"{greeting}, {name}!")
    if args:
        print("Additional names:", ', '.join(args))

greet("Alice")
# Output: Hello, Alice!

greet("Alice", "Bob", "Charlie", greeting="Hi")
# Output:
# Hi, Alice!
# Additional names: Bob, Charlie

*argsi ja kwargi täiustatud kasutamine

Peale põhiliste näidete ja võivad olla Pythoni arenenud programmeerimisel uskumatult võimsad tööriistad. Üks täiustatud kasutusjuht on funktsioonide dekoraatorites. Dekoraatorid on viis funktsioonide või meetodite muutmiseks või täiustamiseks ilma nende tegelikku koodi muutmata. Kasutades ja kwargs, saab dekoraatoreid kirjutada töötama mis tahes arvu argumentidega, muutes need äärmiselt paindlikuks ja korduvkasutatavaks. Näiteks võib logimise dekoraator aktsepteerida mis tahes funktsiooni, logida selle argumendid ja tagastada väärtuse ning seejärel edastada need argumendid algsele funktsioonile, kasutades ja . See võimaldab dekoraatorit ilma muudatusteta kasutada erinevate signatuuridega funktsioonidega.

Teine täiustatud rakendus on klassimeetodite ja pärimise kontekstis. Põhiklassi meetodi määratlemisel, mis kasutab ja , võivad tuletatud klassid selle meetodi alistada ja siiski aktsepteerida täiendavaid argumente ilma neid selgesõnaliselt loetlemata. See võib lihtsustada koodi hooldamist ja suurendada paindlikkust, kuna baasklass ei pea kõiki võimalikke argumente ette teadma. Lisaks ja kwargs saab kasutada argumentide edastamiseks vanemklassi meetoditele, tagades põhiklassi täieliku funktsionaalsuse säilimise ja selle käitumist laiendades või muutes.

  1. Mis on ?
  2. Neid kasutatakse muutuva arvu positsiooniargumentide edastamiseks funktsioonile.
  3. Mis on ?
  4. Need võimaldavad teil funktsioonile edastada muutuva arvu märksõnaargumente.
  5. Kas ma võin kasutada ja koos?
  6. Jah, saate mõlemat kasutada samas funktsioonis positsiooni- ja märksõnaargumentide mis tahes kombinatsiooni käsitlemiseks.
  7. Kuidas läbitud argumentidele juurde pääseda ?
  8. Need on funktsiooni sees saadaval korteegina.
  9. Kuidas läbitud argumentidele juurde pääseda ?
  10. Need on funktsiooni sees sõnaraamatuna kättesaadavad.
  11. Miks ma peaksin kasutama ?
  12. Võimaldada funktsioonil aktsepteerida mis tahes arvu positsiooniargumente, suurendades selle paindlikkust.
  13. Miks ma peaksin kasutama ?
  14. Suvalise arvu märksõnaargumentide aktsepteerimiseks, mis võib muuta funktsiooni mitmekülgsemaks.
  15. Saab ja nimetada teisiti?
  16. Jah, nimed on kokkuleppelised, kuid võite neile nimetada kõike, mis teile meeldib.
  17. Mis on praktiline näide kasutamisest ?
  18. Mitme väärtuse edastamine funktsioonile, mis need kokku võtab.
  19. Mis on praktiline näide kasutamisest ?
  20. Funktsiooni loomine, mis koostab märksõnaargumentidest sõnastiku.

Pakkimine *argi ja kwargiga

Mõistmine ja kasutamine ja Pythoni funktsioonid võivad teie programmeerimisoskusi märkimisväärselt parandada. Need tööriistad pakuvad funktsioonide määratlustes suurt paindlikkust, võimaldades teil kirjutada dünaamilisemat ja korduvkasutatavat koodi. Neid mõisteid valdades saate oma funktsioonides käsitleda mitmesuguseid argumente, muutes oma koodi kohandatavamaks ja hõlpsamini hooldatavaks.

Olenemata sellest, kas kirjutate dekoraatoreid, käsitlete klassides pärandit või soovite lihtsalt edastada teadmata arvu argumente, ja pakkuda vajalikku funktsionaalsust. Jätkake nende funktsioonidega katsetamist, et paljastada nende täielik potentsiaal ja integreerida need oma kodeerimispraktikatesse tõhusamaks ja võimsamaks Pythoni programmeerimiseks.