argumenter
i det brugerdefinerede funktionsemne lærte vi om at definere en funktion og kalde den. Ellers vil funktionsopkaldet resultere i en fejl. Her er et eksempel.
Output
Hello Monica, Good morning!
Her, funktionen greet()
har to parametre.
da vi har kaldt denne funktion med to argumenter, kører den problemfrit, og vi får ingen fejl.,
Hvis vi kalder det med et andet antal argumenter, viser tolken en fejlmeddelelse. Nedenfor er et opkald til denne funktion med en og ingen argumenter sammen med deres respektive fejlmeddelelser.
>>> greet("Monica") # only one argumentTypeError: greet() missing 1 required positional argument: 'msg'
>>> greet() # no argumentsTypeError: greet() missing 2 required positional arguments: 'name' and 'msg'
argumenter med variabel funktion
indtil nu havde funktioner et fast antal argumenter. I Python, der er andre måder at definere en funktion, der kan tage variabelt antal argumenter.
tre forskellige former af denne type er beskrevet nedenfor.,
Python Standardargumenter
Funktionsargumenter kan have standardværdier i Python.
Vi kan angive en standardværdi til et argument ved at bruge tildelingsoperatøren (=). Her er et eksempel.
Output
Hello Kate, Good morning!Hello Bruce, How do you do?
i denne funktion er parameteren name
har ikke en standardværdi og er påkrævet (obligatorisk) under et opkald.,
på den anden side har parameteren msg
en standardværdi på "Good morning!"
. Så det er valgfrit under et opkald. Hvis en værdi er angivet, overskriver den standardværdien.et vilkårligt antal argumenter i en funktion kan have en standardværdi. Men når vi først har et standardargument, skal alle argumenterne til højre også have standardværdier.
dette betyder at sige, at ikke-standardargumenter ikke kan følge standardargumenter., For eksempel, hvis vi havde defineret den funktion, header ovenfor:
def greet(msg = "Good morning!", name):
Vi vil få en fejlmeddelelse som:
SyntaxError: non-default argument follows default argument
Python Søgeord Argumenter
Når vi kalder en funktion med nogle værdier, disse værdier bliver tildelt til de argumenter, der i henhold til deres position.
Python tillader funktioner, der skal kaldes ved hjælp af søgeordsargumenter. Når vi kalder funktioner på denne måde, kan rækkefølgen (positionen) af argumenterne ændres. Følgende opkald til ovenstående funktion er alle gyldige og giver det samme resultat.,
som vi kan se, kan vi blande positionelle argumenter med nøgleordsargumenter under et funktionsopkald. Men vi skal huske på, at søgeordsargumenter skal følge positionelle argumenter.
at have et positionsargument efter søgeordsargumenter vil resultere i fejl. For eksempel funktionen opkald som følger:
greet(name="Bruce","How do you do?")
Vil resultere i en fejl:
SyntaxError: non-keyword arg after keyword arg
Python Vilkårlige parametre
nogle gange, vi ikke kender i forvejen antallet af argumenter, der vil blive videregivet til en funktion., Python giver os mulighed for at håndtere denne slags situation gennem funktionsopkald med et vilkårligt antal argumenter.
i funktionsdefinitionen bruger vi en stjerne (*) før parameternavnet for at betegne denne slags argument. Her er et eksempel.
Output
Hello MonicaHello LukeHello SteveHello John
Her har vi kaldt funktionen med flere argumenter. Disse argumenter bliver pakket ind i en tupel, før de overføres til funktionen. Inde i funktionen bruger vi enfor
loop for at hente alle argumenterne tilbage.
Skriv et svar