Funkcja main - czy warto używać?

0

Mam kilka pytań odnośnie funkcji main, bo w niektórych podręcznikach co czytałem to nawet o niej nie piszą, ale w Internecie natknąłem się na kilka przypadków.

W innych językach programowania wymagana jest funkcja main, np. java. A w pythonie możemy sobie wiele takich różnych funkcji nawsadzać (nie-main). Ale widziałem, że czasem używają tych funkcji main.

W ogóle jest sens robienia funkcji main i wywoływania w niej innych funkcji jak można wywoływać wiele (nie-main funkcji) poza funkcją main bez problemu.

Kiedy ich używać, a kiedy nie?

0

O jakiej funkcji ty piszesz? Nie kojarzę takiej w Pythonie.

2

Z funkcjami zawsze wszystko jest lepsze... :)

Powaznie -- daje elastyczność i czytelność. Zamiast:

def f(...):
    ...

def g(...):
   ...

if __name__ == "__main__":
    f(...)
    g(...)

lepiej zrobić:

def f(...):
    ...

def g(...):
   ...

def main(...)
    f(...)
    g(...)

if __name__ == "__main__":
    main(...)

Czemu?

  • Możesz taką funkcję main() osobno przetestować.
  • Możesz łatwo podnmienić ją na inną (zmieniając jej nazwę na main1 w definicji i definiując nowa funkcję main -- zdarza mi się tak robić w C/C++).
  • Możesz ją w końcu zaimportować gdzieś indziej i będzie dalej działała.

Jest pewnie jeszcze trochę innych zalet...

1

A, jeszcze jedno: funckja główna w Pythonie oczywiście nie musi nazywać się main -- ale wiele osób ją tak nazywa ze względu na konwencję, bo konwencje też wspomagają czytelność.

1

Jeżeli Masz jakiś moduł:

class Foo:
    pass

def f():
    pass

if __name__ == '__main__':
    # Code...

To kod Code nie wykona się jak go Zaimportujesz, można tam zostawić proste testy, przykłady działania
(wykona się jak Dasz w konsoli: python <nazwa.py>). Dodając if __name__ == '__main__': można używać modułu jako skrypt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1