Atribute speciale în Python: __name__
și __main__
https://docs.python.org/3/library/__main__.html
https://docs.python.org/3/library/stdtypes.html?highlight=__name__#special-attributes
În Python, __name__
este un atribut special care poate fi folosit pentru a determina dacă un fișier a fost importat ca modul sau a fost rulat direct. Acest atribut poate fi util atunci când se scriu module care pot fi folosite ca biblioteci pentru alte programe sau ca scripturi independente.
Când un modul este importat în altul, valoarea atributului __name__
este setată la numele modulului. Însă, dacă un modul este rulat direct, valoarea atributului __name__
este setată la __main__
. Această proprietate poate fi folosită pentru a testa și depana module care sunt folosite în diferite contexte.
Iată un exemplu care ilustrează utilizarea atributului __name__
. Să presupunem că avem un modul numit hello.py
:
def say_hello():
print("Hello!")
if __name__ == "__main__":
say_hello()
În acest modul, funcția say_hello()
este definită și apelată doar dacă modulul este rulat direct. Dacă modulul este importat în altul, funcția nu este apelată automat. Acest lucru poate fi util pentru module care definesc funcții și clase care pot fi folosite în alte programe.
În plus, Python are și un modul special numit __main__
. Acest modul este folosit atunci când un program Python este rulat de la linia de comandă. Dacă un modul este rulat ca script independent, acesta va fi importat ca modulul __main__
. Acest modul poate fi folosit pentru a scrie scripturi care pot fi rulate direct din terminal, fără a fi necesară importarea lor într-un alt program.
În concluzie, utilizarea atributului __name__
și a modulului __main__
poate fi foarte utilă în Python, mai ales atunci când se scriu module sau scripturi care trebuie să fie folosite în diferite contexte.