Przepływ instrukcji - podsumowanie

Pracując z funkcjami, musimy znać kolejność wykonywania poleceń. Nazywamy to przepływem instrukcji i mówiliśmy o tym już kilkukrotnie w tym rozdziale. .. flow of execution

Uruchomienie programu zawsze zaczyna się od pierwszej jego linii. Wyrażenia wykonywane są po kolei, jedno po drugim, w kolejności od góry do dołu. Definicje funkcji nie wpływają na kolejność przepływu instrukcji, choć proszę zapamiętać, że polecenia zawarte w ciele danej funkcji nie zostaną wykonane dopóki jej nie wywołamy. Wywołania funkcji są jak swego rodzaju obejście przepływu instrukcji. Zamiast przejść do kolejnego wyrażenia, przepływ przechodzi do pierwszej linii wołanej funkcji, wykonuje wszystkie wyrażenia w niej zawarte i wraca do miejsca gdzie skończyła.

Nie wygląda to szczególnie skomplikowanie, dopóki nie przypomnimy sobie, że jedna funkcja może wołać inne. Czasem, będąc w środku wykonywania jednej funkcji program będzie musiał wykonać polecenia zawarte w innej. Ale, wykonywując tę kolejną funkcję możliwe, że trzeba będzie wykonać kolejną!

Na szczęście język Python doskonale zdaje sobie sprawę, w którym miejscu programu aktualnie się znajduje, więc za każdym razem, gdy funkcja kończy swoje działanie, program wraca dokładnie do miejsca, gdzie wołał daną funkcję. Dochodząc do końca programu, interpreter się zatrzymuje.

Jaki morał płynie z tej historyjki? Czytając program, nie czytaj go po prostu z góry na dół. Zamiast tego podążaj za przepływem instrukcji. Oznacza to, że powinieneś przeczytać linie z wyrażeniami def na początku, ale pominąć ciała funkcji, wracając do nich wtedy, gdy dojdziesz do momentu, gdzie widzisz do nich odwołanie.

Sprawdź swoją wiedzę

func-6-1: Rozważmy poniższy program napisany w Pythonie. Zważ, że numery linii widnieją po lewej.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
def pow(b, p):
    y = b ** p
    return y


def square(x):
    a = pow(x, 2)
    return a


n = 5
result = square(n)
print(result)

Podaj kolejność wykonywania linii, która najlepiej oddaje kolejność wykonywania tego programu w Pythonie.







func-6-2: Rozważmy poniższy program napisany w Pythonie. Zważ, że numery linii widnieją po lewej.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
def pow(b, p):
    y = b ** p
    return y


def square(x):
    a = pow(x, 2)
    return a


n = 5
result = square(n)
print(result)

Co takiego drukuje funkcja?






Następna część - Jak używać funkcji main?