Pereiti prie turinio

Python/Funkcijų deklaravimas

Iš Wikibooks.

Python, kaip ir daugelis kitų programavimo kalbų turi funkcijas, tačiau neturi atskiro header failo, kaip C++ ar interface/implementation dalių, kaip Pascal'is. Jei reikalinga funkcija, tiesiog aprašykite ją, kaip kad šiame pavyzdyje:

def buildConnectionString(params):

Žodžiu def pradedamas funkcijos aprašymas, po kurio seka funkcijos pavadinimas, toliau, skliausteliuose nurodomi funkcijos argumentai. Kiti argumentai (kurių pavyzdyje nėra), atskiriami kableliais.

Taip pat, atkreipkite dėmesį, kad funkcijoje nenurodomas grąžinamos reikšmės duomenų tipas. Python funkcijose nenurodomas gražinamos reikšmės duomenų tipas, netgi nenurodoma ar iš vis kokia nors reikšmė grąžinama ar ne. Iš tikrųjų kiekviena Python funkcija grąžina kokią nors reikšmę. Jei funkcijoje, kurioje nors vietoje įvykdomas return sakinys, tada gražinama nurodytoji reikšmė, jei ne, tada grąžinamas None, tuščioji Python reikšmė, kuri kitose programavimo kalbose dar vadinama null.

Visual Basic programavimo kalboje, funkcijos, kurios grąžina reikšmę, pradedamos raktiniu žodžiu function, o procedūros, kurios negrąžina jokios reikšmės, pradedamos raktiniu žodžiu sub. Python nėra procedūrų. Viskas yra funkcijos, visos funkcijos grąžina reikšmę (net jei ji yra None) ir visos funkcijos prasideda raktiniu žodžiu def.

Argumentams, parametrams, nereikia nurodyti jų duomenų tipų. Python kalboje, kintamųjų tipai niekada neapibrėžiami. Python supranta kokie yra kintamųjų tipai ir visa tai kontroliuojama iš vidaus.

Java, C++ ir kitose programavimo kalbose, statiškai apibrėžiančiose tipus, privalu nurodyti duomenų tipus funkcijų grąžinamoms reikšmėms ir kiekvienam argumentui. Python kalboje, niekada ir niekur nereikia nurodinėti duomenų tipų. Pagal tai, kokia reikšmė priskiriama kintamajam, Python atpažįsta duomenų tipus ir visa tai kontroliuoja viduje.


Python duomenų tipų palyginimas su kitomis programavimo kalbomis

[keisti]

Vienas skaitytojas-mokslininkas atsiuntė man šį Python ir kitų programavimo kalbų palyginimą:

statiškai tipizuojama kalba

tai programavimo kalba, kurioje duomenų tipai fiksuojami kompiliavimo metu. Daugelis kalbų, turinčių statinius tipus reikalauja programuotojus nurodyti visus kintamuosius ir jų duomenų tipus, prieš juos naudojant. Java ir C kalbos naudoja statinius tipus.

dinamiškai tipizuojama kalba

tai programavimo kalba, kurioje duomenų tipai nustatomi vykdymo metu, statinių tipų priešingybė. VBScript ir Python naudojami dinaminiai duomenų tipai, kintamojo duomenų tipas nustatomas pagal reikšmę, kuri jam priskiriama pirmą kartą.

griežtai tipizuojama kalba

tai programavimo kalba, kurioje visada tikrinamas duomenų tipas. Java ir Python yra griežtai tipizuotos kalbos. Jei turite integer tipo kintamąjį, negalite naudoti jo kaip string tipo kintamojo, prieš tai neatlikę jo konvertavimo.

silpai tipizuojama kalba

tai programavimo kalba, kurioje duomenų tipas gali būti ignoruojamas. Griežto tipizavimo priešingybė. VBScript yra silpai tipizuota programavimo kalba. VBScript kalboje galite laisvai apjungti simbolių eilutę '12' ir skaičių 3, norėdami gauti eilutę '123', o vėliau panaudoti šią reikšmę kaip skaičių 123, nenaudojant jokio konvertavimo iš vieno tipo į kitą.


Taigi, Python yra ir dinamiškai tipizuojama (todėl, kad nereikia nurodyti duomenų tipų) ir griežtai tipizuojama (todėl, kad jei jau kintamasis įgavo duomenų tipą, tai turi prasmę).