Tässä artikkelissa kerromme, mitä ** (kaksoistähti/tähti) ja * (tähti/tähti) tekevät parametreille Python , Täällä me myös kattaa args ja kwargs esimerkkejä Pythonissa. Voimme välittää muuttuvan määrän argumentteja funktiolle erikoissymbolien avulla.
On olemassa kaksi erikoissymbolia:
*args ja **kwargs Pythonissa
Pythonissa argumenttien välittämiseen käytetyt erikoissymbolit:
sklearn tarkkuuspisteet
- *argumentit (ei-avainsana-argumentit)
- **kwargs (avainsana-argumentit)
Huomautus: Käytämme jokerimerkkiä tai *-merkintää näin – *args TAI **kwargs – funktiomme argumenttina, kun epäilemme, kuinka monta argumenttia meidän tulee välittää funktiossa.
Mikä on Python *args?
Erityinen syntaksi *argumentit Pythonin funktiomäärittelyissä käytetään siirtämään muuttuva määrä argumentteja funktiolle. Sitä käytetään ei-avainsanamuotoisen, muuttuvan pituisen argumenttiluettelon välittämiseen.
- Syntaksi on käyttää symbolia * ottaaksesi muuttuvan määrän argumentteja; sopimuksen mukaan sitä käytetään usein sanan args kanssa.
- Mitä *argumentit Voit ottaa enemmän argumentteja kuin aiemmin määrittämiesi muodollisten argumenttien määrä. Kanssa *argumentit , minkä tahansa määrän lisäargumentteja voidaan liittää nykyisiin muodollisiin parametreihisi (mukaan lukien nolla ylimääräistä argumenttia).
- Haluamme esimerkiksi tehdä kertofunktion, joka ottaa minkä tahansa määrän argumentteja ja pystyy kertomaan ne kaikki yhdessä. Se voidaan tehdä käyttämällä *args.
- Käyttämällä *-muuttujaa, jonka yhdistämme *:ään, tulee iteroitava, mikä tarkoittaa, että voit esimerkiksi iteroida sen yli, suorittaa joitain korkeamman asteen toimintoja, kuten karttaa ja suodatinta, jne.
Esimerkki 1:
Python-ohjelma havainnollistaa *argumentteja vaihtelevalle määrälle argumentteja
python
def myFun(*argv): for arg in argv: print(arg) myFun('Hello', 'Welcome', 'to', 'techcodeview.com')>
Lähtö:
Hello Welcome to techcodeview.com>
Esimerkki 2:
Python-ohjelma havainnollistaa *argumentteja ensimmäisellä lisäargumentilla
Python 3 def myFun(arg1, *argv): print('First argument :', arg1) for arg in argv: print('Next argument through *argv :', arg) myFun('Hello', 'Welcome', 'to', 'techcodeview.com')>
Lähtö:
merkkijonon muuntaminen json-muotoon javassa
First argument : Hello Next argument through *argv : Welcome Next argument through *argv : to Next argument through *argv : techcodeview.com>
Mikä on Python **kwargs?
Erityinen syntaksi **kwargs Pythonin funktiomäärittelyissä käytetään avainsanoilla varustetun, muuttuvan pituuden argumenttiluettelon välittämiseen. Käytämme nimeä kwargs kaksoistähdellä. Syynä on se, että kaksoistähti antaa meille mahdollisuuden käydä läpi avainsanaargumentteja (ja minkä tahansa määrän niitä).
- Avainsana-argumentti on paikka, jossa annat muuttujalle nimen, kun annat sen funktioon.
- Voidaan ajatella kwargs sanakirjana, joka kartoittaa jokaisen avainsanan arvoon, jonka annamme sen rinnalla. Siksi, kun toistamme yli kwargs ei näytä olevan mitään järjestystä, jossa ne tulostettiin.
Esimerkki 1:
Python-ohjelma havainnollistaa *kwargs vaihtelevalle määrälle avainsanaargumentteja. Tässä **kwargs hyväksyy funktiokutsun välittämän avainsanan muuttuvan pituuden argumentin. for first = 'Nörtti' ensimmäinen on avain ja 'Geeks' on arvo. Yksinkertaisesti sanottuna se, mitä annamme, on arvoa, ja se, kenelle annamme, on avainasemassa.
Python def myFun(**kwargs): for key, value in kwargs.items(): print('%s == %s' % (key, value)) # Driver code myFun(first='Geeks', mid='for', last='Geeks')>
Lähtö:
first == Geeks mid == for last == Geeks>
Esimerkki 2:
Python-ohjelma havainnollistaa **kwargs-funktiota vaihtelevalle määrälle avainsanaargumentteja yhdellä ylimääräisellä argumentilla. Kaikki sama, mutta yksi muutos on, että välitämme ei-avainsana-argumentin, joka on hyväksyttävä sijaintiargumentilla (arg1 myFunissa). ja avainsana-argumentit, jotka välitämme, ovat **kwargin hyväksymiä. yksinkertainen eikö?
Python def myFun(arg1, **kwargs): for key, value in kwargs.items(): print('%s == %s' % (key, value)) # Driver code myFun('Hi', first='Geeks', mid='for', last='Geeks')>
Lähtö:
first == Geeks mid == for last == Geeks>
Sekä *args- että **kwargs-komentojen käyttäminen Pythonissa funktion kutsumiseen
Esimerkki 1:
Tässä välitetään *args ja **kwargs argumenttina myFun-funktiossa. *args:n välittäminen myFunille tarkoittaa yksinkertaisesti sitä, että välitämme argien sisältämät sijainti- ja muuttuvapituiset argumentit. niin, nörtti siirtyy arg1:een, siirtyy arg2:een ja Geeks siirtyy arg3:een. Kun annamme **kwargs-argumentin myFunille, se tarkoittaa, että se hyväksyy avainsanaargumentit. Tässä arg1 on avain ja arvo on Geeks, joka välitetään arg1:lle, ja samoin for ja Geeks siirtyvät arg2:een ja arg3:een. Kun kaikki tiedot on siirretty, tulostamme kaikki tiedot riveinä.
for silmukan tyypitpython
def myFun(arg1, arg2, arg3): print('arg1:', arg1) print('arg2:', arg2) print('arg3:', arg3) # Now we can use *args or **kwargs to # pass arguments to this function : args = ('Geeks', 'for', 'Geeks') myFun(*args) kwargs = {'arg1': 'Geeks', 'arg2': 'for', 'arg3': 'Geeks'} myFun(**kwargs)>
Lähtö:
arg1: Geeks arg2: for arg3: Geeks arg1: Geeks arg2: for arg3: Geeks>
Esimerkki 2:
Tässä välitetään *args ja **kwargs argumenttina myFun-funktiossa. missä 'nörtti', 'for', 'nörtti' annetaan *args, ja ensimmäinen = Nörtti, keski = for, viimeinen = Nörtti on hyväksytty nimellä **kwargs and printing samalla rivillä.
java lisäyslajittelupython
def myFun(*args, **kwargs): print('args: ', args) print('kwargs: ', kwargs) # Now we can use both *args ,**kwargs # to pass arguments to this function : myFun('geeks', 'for', 'geeks', first='Geeks', mid='for', last='Geeks')>
Lähtö:
args: ('geeks', 'for', 'geeks') kwargs: {'first': 'Geeks', 'mid': 'for', 'last': 'Geeks'}>
Pythonin *args- ja **kwargs-komentojen käyttäminen objektin arvojen asettamiseen
Esimerkki 1: Python *args
Python # defining car class class Car(): # args receives unlimited no. of arguments as an array def __init__(self, *args): # access args index like array does self.speed = args[0] self.color = args[1] # creating objects of car class audi = Car(200, 'red') bmw = Car(250, 'black') mb = Car(190, 'white') # printing the color and speed of the cars print(audi.color) print(bmw.speed)>
Lähtö:
red 250>
Esimerkki 2: Python **kwargs -komennolla
Python # defining car class class Car(): # args receives unlimited no. of arguments as an array def __init__(self, **kwargs): # access args index like array does self.speed = kwargs['s'] self.color = kwargs['c'] # creating objects of car class audi = Car(s=200, c='red') bmw = Car(s=250, c='black') mb = Car(s=190, c='white') # printing the color and speed of cars print(audi.color) print(bmw.speed)>
Lähtö:
red 250>