Kaip programuotojas dažnai pastebėsite, kad veiksmą ar užduotį atliekate pakartotinai. Tai gali būti nuobodu ir atimti daug laiko, ypač dirbant su didele ar sudėtinga kodų baze. Jų automatizavimas funkcijomis yra efektyvesnis būdas atlikti tokias užduotis. Funkcijos leidžia vieną kartą parašyti kodo logiką ir naudoti ją bet kurioje programos vietoje.
Kas yra Python funkcija?
Python sistemoje funkcija yra kodo blokas, naudojamas konkrečiai užduočiai atlikti. Funkciją reikia parašyti tik vieną kartą, bet kode galite ją naudoti kelis kartus. Funkcija gali priimti argumentus kaip įvesties ir grąžinti išvesties reikšmes. Ši paprasta programa rodo funkciją, kuri apskaičiuoja trijų skaičių sumą:
# Python funkcija, skirta apskaičiuoti trijų skaičių sumą
defapskaičiuoti_suma(a, b, c):
grąžinti a+b+c
print (calculate_sum(1,2,3)) # grąžina 6
print (calculate_sum(1000, 300,44)) # grąžina 1344
print (calculate_sum(12, 4,78)) # grąžina 94
Aukščiau pateiktoje programoje funkcija grąžina trijų argumentų sumą. Kai funkcija iškviečiama kelis kartus, kiekvienu atveju ji pateikia skirtingą išvestį. Naudinga šios funkcijos programa bus skaičiuotuvo programa.
Funkcijos apibrėžimas Python
Python turi daug integruotų funkcijų galima naudoti kūrėjams. Tačiau šių integruotų funkcijų ne visada pakanka, kad būtų patenkinti daugelio projektų poreikiai. Norėdami patenkinti pasirinktinius poreikius, turite apibrėžti savo pasirinktines funkcijas. Pasirinktinių funkcijų apibrėžimas yra įprasta programavimo praktika.
„Python“ tinkintą funkciją galite apibrėžti naudodami def raktinį žodį, po kurio nurodomas funkcijos pavadinimas su skliaustais priešais jį. Štai pavyzdys:
deffunkcijos_pavadinimas()
Priskirdami funkcijos pavadinimą Python, turėtumėte atsižvelgti į šias taisykles:
- Funkcijų pavadinimai turi būti rašomi mažosiomis raidėmis.
- Funkcijų pavadinimai turi būti aprašomieji.
- Norėdami atskirti žodžius funkcijos pavadinime, naudokite apatinius brūkšnius.
Apibrėžę funkciją, turite parašyti logiką norimai užduočiai atlikti. Pavyzdžiui, ši funkcija apskaičiuoja trikampio plotą:
# Python funkcija trikampio plotui apskaičiuoti
defapskaičiuoti_trikampio_plotą(pagrindas, aukštis):
plotas = (pagrindas * aukštis)/2
grąžinti plotas
print (calculate_triangle_area(12, 3))
Aukščiau pateikta funkcija apibrėžia du parametrus: bazė ir aukštis, padalija savo produktą iš dviejų ir grąžina rezultatą kaip išvestį. Galite rašyti bet kokią logiką, kurią norite, kad jūsų funkcija atliktų.
Funkcijų argumentų supratimas
Ankstesniuose pavyzdžiuose funkcijos naudojo argumentus veiksmams atlikti. Argumentai šiuose pavyzdžiuose yra žinomi kaip privalomi arba poziciniai argumentai. Python jūsų argumentai gali būti vienas iš šių:
- Poziciniai argumentai
- Raktažodžių argumentai
Poziciniai argumentai
Pozicijos argumentai turi būti perduoti teisinga apibrėžimo tvarka. Pavyzdžiui, jei apibrėžiate funkciją su parametrais a, b, ir c, turite atitinkamai perduoti šių parametrų vertes, kai juos iškviečiate. Panagrinėkime ankstesnį pavyzdį:
# Python funkcija, skirta apskaičiuoti trijų skaičių sumą
defapskaičiuoti_suma(a, b, c):
grąžinti a+b+c
print (calculate_sum(1,2,3)) # grąžina 6
print (calculate_sum(1000, 300,44)) # grąžina 1344
print (calculate_sum(12, 4,78)) # grąžina 94
Aukščiau pateiktoje programoje apskaičiuoti_suma() funkcija naudoja tris argumentus, kai tik ją iškviečiame. Kiekvienas argumentas reiškia atitinkamą parametrą. Pirmajame funkciniame skambutyje skaičiai 1, 2, ir 3 atstovauti a, b, ir c atitinkamai.
Parametras deklaruojamas funkcijos apibrėžime, o argumentas yra reikšmė, perduodama, kai iškviečiate funkciją. Ši reikšmė yra atitinkamo parametro atvaizdas.
Pozicijos argumentai yra privalomi. Jei jų nepridėsite, gausite a Tipo klaida. Tai rodo šis pavyzdys:
defapskaičiuoti_suma(a, b, c):
grąžinti a+b+c
print (calculate_sum(1,2)) # kelia TypeError
Kai paleisite aukščiau nurodytą programą savo kompiuteryje, gausite klaidą, panašią į toliau pateiktame paveikslėlyje:
Raktažodžių argumentai
Raktinių žodžių argumentai nebūtinai turi būti perduoti, kai iškviečiate funkciją. Tai yra neprivalomi argumentai ir nereikia laikytis konkrečios tvarkos. Python leidžia mums naudoti *args ir **kwargs norėdami nurodyti raktinių žodžių argumentus.
Neskaitant naudojimo *args ir **kwargs, taip pat galima nurodyti numatytąsias argumentų vertes. Tai padarius nebus rodoma klaida, jei pamiršite pridėti reikšmę, kai iškviečiate funkciją. Šiame pavyzdyje pateikiama iliustracija:
defapskaičiuoti_suma(a, b, c=3):
grąžinti a+b+c
print (calculate_sum(1,2)) # grąžina 6
Aukščiau pateiktoje programoje, kada apskaičiuoti_suma() yra vadinamas, nėra jokių argumentų c; tai neturės įtakos programai, nes c jau turi numatytąją reikšmę. Galite nurodyti numatytąsias vertes tiek argumentų, kiek norite, bet įsitikinkite, kad tai darote išmintingai.
Naudokite funkcijas kodui tvarkyti
Funkcijos yra naudingos tvarkant kodą, kad jis būtų lengviau skaitomas ir efektyvesnis. Naudodami funkcijas galite suskaidyti kodą į mažesnes, daugkartinio naudojimo dalis, kurias lengviau suprasti ir prižiūrėti. Be to, jei reikia pakeisti kodą, reikia pakeisti tik reikiamą funkciją, o ne visą kodo bazę.