Jaka jest różnica między “func” a “func()” w Pythonie?

W Pythonie, jak w wielu językach programowania, funkcje pełnią kluczową rolę, pozwalając na ponowne wykorzystanie kodu i organizację programu w logiczne bloki. Jednakże, początkujący programiści często zastanawiają się nad różnicą między odwołaniem do funkcji z użyciem jej nazwy func a wywołaniem tej funkcji z dodanymi nawiasami func(). W tym artykule wyjaśnimy tę różnicę, korzystając z konkretnego przykładu.

Kompletny przykład

Załóżmy, że mamy funkcję greet, która przyjmuje imię jako argument i wypisuje przywitanie. Sprawdźmy, jak różni się efekt użycia greet od greet().

# Definicja funkcji greet, która przyjmuje
# imię i wypisuje przywitanie
def greet(name):
    print("Cześć", name + "!")

# Próba przypisania funkcji greet do zmiennej
function_variable = greet
# Teraz function_variable wskazuje na funkcję greet

# Próba wywołania funkcji greet za pomocą zmiennej
function_variable("Anna")  # Wywołuje funkcję greet z argumentem

# Bezpośrednie wywołanie funkcji greet z argumentem
greet("Tomasz")

# Próba użycia greet bez nawiasów
print(greet)  # Wypisze informacje o funkcji, ale jej nie wywoła

Komentarze w kodzie wyraźnie pokazują różnicę w użyciu. Przypisanie greet do zmiennej function_variable pozwala na wywołanie funkcji przez tę zmienną, jak gdybyśmy korzystali bezpośrednio z greet(). Natomiast użycie print(greet) wypisze informacje o funkcji, ale nie wykona jej. To pokazuje, że greet bez nawiasów odnosi się do samej funkcji jako obiektu, a nie do jej wykonania.

Podsumowanie

Różnica między func a func() w Pythonie jest kluczowa i odnosi się do tego, jak odnosimy się do funkcji i jak ją wywołujemy. Używając nazwy funkcji bez nawiasów, odnosimy się do samej funkcji jako obiektu, co pozwala na przypisanie jej do zmiennej lub przekazanie jako argumentu. Dodanie nawiasów powoduje wywołanie funkcji i jest to akcja, która wykonuje kod zawarty w funkcji. To rozróżnienie jest podstawą dla zrozumienia, jak funkcje działają w Pythonie i jak mogą być wykorzystywane w bardziej złożonych konstrukcjach programistycznych.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Python w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top