Zanurkuj w Pythonie/Deklarowanie funkcji
Deklarowanie funkcji
[edytuj]Python, podobnie jak wiele innych języków programowania, posiada funkcje, lecz nie deklarujemy ich w oddzielnych plikach nagłówkowych (jak np. w C++), czy też nie dzielimy na sekcje interfejsu i implementacji jak w Pascalu. Jeśli potrzebujemy jakiejś funkcji, po prostu ją deklarujemy, na przykład:
def buildConnectionString(params):
Słowo kluczowe def
rozpoczyna deklarację funkcji, następnie podajemy nazwę funkcji, a potem, w nawiasach, parametry. Większą liczbę parametrów podajemy po przecinkach.
Jak widać funkcja nie definiuje zwracanego typu. Podczas deklarowania pythonowych funkcji nie określamy, czy mają one zwracać jakąś wartość, a nawet czy mają cokolwiek zwracać. W rzeczywistości każda funkcja zwraca pewną wartość. Jeżeli w funkcji znajduje się instrukcja return
, funkcja zwróci określoną wartość, wskazaną za pomocą tej instrukcji. W przeciwnym wypadku (gdy dana funkcja nie posiada instrukcji return
) zostanie zwrócona wartość None
, czyli tak zwana wartość "pusta", w innych językach często określana jako null
lub nil
.
W Visual Basicu funkcje (te, które zwracają wartość) rozpoczynają się słowem kluczowym function , a procedury (z ang. subroutines, nie zwracają wartości) deklarujemy za pomocą słowa sub . W Pythonie nie ma czegoś takiego jak procedury. Są tylko funkcje, a każda z nich zwraca wartość (nawet jeżeli jest to None ) i wszystkie rozpoczynają się słowem kluczowym def .
|
Argument params
nie ma określonego typu. W Pythonie typów zmiennych nie określamy w sposób jawny. Interpreter sam automatycznie rozpoznaje i śledzi typ zmiennej.
W Javie, C++ i innych językach statycznie typowanych musimy określić typ danych zwracany przez funkcję, a także typ każdego argumentu. W Pythonie nigdzie tego nie robimy. Bazując na wartości jaka została przypisana zmiennej, Python sam określa jej typ. |
Typy danych w Pythonie a inne języki programowania
[edytuj]Jeśli chodzi o nadawanie typów, języki programowania można podzielić na:
- statycznie typowane
- Są to języki, w których typy są nadawane podczas kompilacji. Wiele tego typu języków programowania wymaga deklarowania wszystkich zmiennych przed ich użyciem, przez podanie ich typu. Przykładami takich języków są Java, C/C++, Pascal.
- dynamicznie typowane
- Są to języki, w których typy zmiennych są nadawane podczas działania programu. VBScript i Python są językami dynamicznie typowanymi, ponieważ nadają one typ zmiennej podczas przypisania do niej wartości.
- silnie typowane
- Są to języki, w których między różnymi typami widać wyraźną granicę. Jeśli mamy pewną liczbę całkowitą, to nie możemy jej traktować jak łańcuch znaków bez wcześniejszej konwersji.
- słabo typowane
- Są to języki, w których możemy nie zwracać uwagi na typ zmiennej. Do takich języków zaliczymy VBScript. Możemy w nim, nie wykonując żadnej wyraźnej konwersji, połączyć łańcuch znaków
'12'
z liczbą całkowitą3
otrzymując łańcuch'123'
, a następnie potraktować go jako liczbę całkowitą123
. Konwersja jest wykonywana automatycznie.
Python jest językiem zarówno dynamicznie typowanym (ponieważ nie wymaga wyraźnej deklaracji typu), jak i silnie typowanym (ponieważ zmienne posiadają wyraźnie ustalone typy, które nie podlegają automatycznej konwersji).