Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python - Functies

Vorige paginaVolgende pagina

Een functie is een blok georganiseerde, herbruikbare code die wordt gebruikt om een ​​enkele, gerelateerde actie uit te voeren. Functies zorgen voor een betere modulariteit voor uw toepassing en een hoge mate van hergebruik van code.

Zoals je al weet, geeft Python je veel ingebouwde functies zoals print(), etc. maar je kunt ook je eigen functies maken. Deze functies worden door de gebruiker gedefinieerde functies genoemd.

Een functie definiëren

U kunt functies definiëren om de vereiste functionaliteit te bieden. Hier zijn eenvoudige regels om een ​​functie in Python te definiëren.

  • Functieblokken beginnen met het trefwoord def gevolgd door de functienaam en haakjes ( ( ) ).

  • Alle invoerparameters of argumenten moeten tussen deze haakjes worden geplaatst. U kunt ook parameters tussen deze haakjes definiëren.

  • De eerste instructie van een functie kan een optionele instructie zijn - de documentatiereeks van de functie of docstring .

  • Het codeblok binnen elke functie begint met een dubbele punt (:) en is ingesprongen.

  • De instructie return [expression] sluit een functie af en geeft optioneel een expressie terug aan de aanroeper. Een return-statement zonder argumenten is hetzelfde als return None.

Syntaxis

def functionname( parameters ):
   "function_docstring"
   function_suite
   return [expression]

Standaard hebben parameters een positioneel gedrag en u moet ze in dezelfde volgorde informeren als waarin ze zijn gedefinieerd.

Voorbeeld

De volgende functie neemt een string als invoerparameter en drukt deze af op het standaardscherm.

def printme( str ):
   "This prints a passed string into this function"
   print str
   return

Een functie aanroepen

Het definiëren van een functie geeft het alleen een naam, specificeert de parameters die in de functie moeten worden opgenomen en structureert de codeblokken.

Zodra de basisstructuur van een functie is voltooid, kunt u deze uitvoeren door deze vanuit een andere functie of rechtstreeks vanaf de Python-prompt aan te roepen. Hieronder volgt het voorbeeld om de functie printme() aan te roepen −

Live demo
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme("I'm first call to user defined function!")
printme("Again second call to the same function")

Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −

I'm first call to user defined function!
Again second call to the same function

Door referentie vs waarde doorgeven

Alle parameters (argumenten) in de Python-taal worden als referentie doorgegeven. Het betekent dat als je verandert waar een parameter naar verwijst binnen een functie, de verandering ook terugkomt in de aanroepende functie. Bijvoorbeeld −

Live demo
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist.append([1,2,3,4]);
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

Hier handhaven we de referentie van het doorgegeven object en voegen we waarden toe aan hetzelfde object. Dit zou dus het volgende resultaat opleveren −

Values inside the function:  [10, 20, 30, [1, 2, 3, 4]]
Values outside the function:  [10, 20, 30, [1, 2, 3, 4]]

Er is nog een voorbeeld waarbij argument wordt doorgegeven door middel van verwijzing en de verwijzing wordt overschreven binnen de aangeroepen functie.

Live demo
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist = [1,2,3,4]; # This would assig new reference in mylist
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

De parameter mijnlijst is lokaal voor de functie changeme. Het wijzigen van mijn lijst binnen de functie heeft geen invloed op mijnlijst . De functie bereikt niets en uiteindelijk zou dit het volgende resultaat opleveren −

Values inside the function:  [1, 2, 3, 4]
Values outside the function:  [10, 20, 30]

Functieargumenten

U kunt een functie aanroepen door de volgende soorten formele argumenten te gebruiken −

  • Vereiste argumenten
  • Trefwoordargumenten
  • Standaardargumenten
  • Argumenten met variabele lengte

Vereiste argumenten

Vereiste argumenten zijn de argumenten die in de juiste positionele volgorde aan een functie worden doorgegeven. Hier moet het aantal argumenten in de functieaanroep exact overeenkomen met de functiedefinitie.

Om de functie printme() . aan te roepen , moet u zeker één argument doorgeven, anders geeft het een syntaxisfout als volgt −

Live demo
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme()

Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −

Traceback (most recent call last):
   File "test.py", line 11, in <module>
      printme();
TypeError: printme() takes exactly 1 argument (0 given)

Zoekwoordargumenten

Trefwoordargumenten zijn gerelateerd aan de functieaanroepen. Wanneer u trefwoordargumenten gebruikt in een functieaanroep, identificeert de aanroeper de argumenten aan de hand van de parameternaam.

Hiermee kunt u argumenten overslaan of ze in de verkeerde volgorde plaatsen, omdat de Python-interpreter de verstrekte trefwoorden kan gebruiken om de waarden met parameters te matchen. U kunt ook trefwoordaanroepen doen naar de printme() functioneren op de volgende manieren −

Live demo
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme( str = "My string")

Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −

My string

Het volgende voorbeeld geeft een duidelijker beeld. Merk op dat de volgorde van de parameters er niet toe doet.

Live demo
#!/usr/bin/python

# Function definition is here
def printinfo( name, age ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )

Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −

Name:  miki
Age  50

Standaardargumenten

Een standaardargument is een argument dat een standaardwaarde aanneemt als er geen waarde is opgegeven in de functieaanroep voor dat argument. Het volgende voorbeeld geeft een idee van standaardargumenten, het drukt de standaardleeftijd af als deze niet wordt doorgegeven −

Live demo
#!/usr/bin/python

# Function definition is here
def printinfo( name, age = 35 ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )
printinfo( name="miki" )

Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −

Name:  miki
Age  50
Name:  miki
Age  35

Argumenten met variabele lengte

Mogelijk moet u een functie verwerken voor meer argumenten dan u hebt opgegeven tijdens het definiëren van de functie. Deze argumenten worden variabele lengte . genoemd argumenten en worden niet genoemd in de functiedefinitie, in tegenstelling tot vereiste en standaardargumenten.

Syntaxis voor een functie met niet-trefwoord variabele argumenten is dit −

def functionname([formal_args,] *var_args_tuple ):
   "function_docstring"
   function_suite
   return [expression]

Een asterisk (*) wordt geplaatst voor de naam van de variabele die de waarden bevat van alle niet-sleutelwoordvariabele-argumenten. Deze tuple blijft leeg als er geen extra argumenten worden opgegeven tijdens de functieaanroep. Hieronder volgt een eenvoudig voorbeeld −

Live demo
#!/usr/bin/python

# Function definition is here
def printinfo( arg1, *vartuple ):
   "This prints a variable passed arguments"
   print "Output is: "
   print arg1
   for var in vartuple:
      print var
   return;

# Now you can call printinfo function
printinfo( 10 )
printinfo( 70, 60, 50 )

Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −

Output is:
10
Output is:
70
60
50

De Anoniem Functies

Deze functies worden anoniem genoemd omdat ze niet op de standaard manier worden gedeclareerd met behulp van de def trefwoord. U kunt de lambda . gebruiken trefwoord om kleine anonieme functies te creëren.

  • Lambda-formulieren kunnen een willekeurig aantal argumenten aannemen, maar retourneren slechts één waarde in de vorm van een uitdrukking. Ze mogen geen opdrachten of meerdere uitdrukkingen bevatten.

  • Een anonieme functie kan geen directe aanroep zijn om af te drukken omdat lambda een uitdrukking vereist

  • Lambda-functies hebben hun eigen lokale naamruimte en hebben geen toegang tot andere variabelen dan die in hun parameterlijst en die in de globale naamruimte.

  • Hoewel het erop lijkt dat lambda's een eenregelige versie van een functie zijn, zijn ze niet gelijk aan inline-statements in C of C++, waarvan het doel is om functiestapeltoewijzing door te geven tijdens het aanroepen om prestatieredenen.

Syntaxis

De syntaxis van lambda functies bevat slechts een enkele instructie, die als volgt is −

lambda [arg1 [,arg2,.....argn]]:expression

Hieronder volgt het voorbeeld om te laten zien hoe lambda vorm van functie werkt −

Live demo
#!/usr/bin/python

# Function definition is here
sum = lambda arg1, arg2: arg1 + arg2;

# Now you can call sum as a function
print "Value of total : ", sum( 10, 20 )
print "Value of total : ", sum( 20, 20 )

Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −

Value of total :  30
Value of total :  40

De terugkeer Verklaring

De instructie return [expression] sluit een functie af en geeft optioneel een expressie terug aan de aanroeper. Een return-statement zonder argumenten is hetzelfde als return None.

Alle bovenstaande voorbeelden geven geen waarde terug. U kunt als volgt een waarde uit een functie retourneren −

Live demo
#!/usr/bin/python

# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2
   print "Inside the function : ", total
   return total;

# Now you can call sum function
total = sum( 10, 20 );
print "Outside the function : ", total 

Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −

Inside the function :  30
Outside the function :  30

Omvang van variabelen

Alle variabelen in een programma zijn mogelijk niet op alle locaties in dat programma toegankelijk. Dit hangt af van waar je een variabele hebt gedeclareerd.

Het bereik van een variabele bepaalt het gedeelte van het programma waar u toegang hebt tot een bepaalde identifier. Er zijn twee basisbereiken van variabelen in Python −

  • Algemene variabelen
  • Lokale variabelen

Globale versus lokale variabelen

Variabelen die binnen een functielichaam zijn gedefinieerd, hebben een lokaal bereik, en variabelen die daarbuiten zijn gedefinieerd, hebben een globaal bereik.

Dit betekent dat lokale variabelen alleen toegankelijk zijn binnen de functie waarin ze zijn gedeclareerd, terwijl alle functies toegang hebben tot globale variabelen in de hele programmatekst. Wanneer u een functie aanroept, worden de variabelen die erin zijn gedeclareerd, binnen het bereik gebracht. Hieronder volgt een eenvoudig voorbeeld −

Live demo
#!/usr/bin/python

total = 0; # This is global variable.
# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2; # Here total is local variable.
   print "Inside the function local total : ", total
   return total;

# Now you can call sum function
sum( 10, 20 );
print "Outside the function global total : ", total 

Wanneer de bovenstaande code wordt uitgevoerd, levert dit het volgende resultaat op −

Inside the function local total :  30
Outside the function global total :  0

Python

  1. Python Anonieme/Lambda-functie
  2. Python-generatoren
  3. Python-sluitingen
  4. Python-decorateurs
  5. 10 populaire functies in Stratasys Insight
  6. C++-functies met programmavoorbeelden
  7. Python String strip() Functie met VOORBEELD
  8. Python Lambda-functies met VOORBEELDEN
  9. Python abs() Functie:Voorbeelden van absolute waarden
  10. Python round() functie met VOORBEELDEN
  11. Python map() functie met VOORBEELDEN