Użycie instrukcji „jeśli __name__ == __main__” w Pythonie

Użycie instrukcji „jeśli __name__ == __main__” w Pythonie
Niektóre specjalne zmienne są ustawiane, gdy jakikolwiek skrypt Python wykonuje. __nazwa__ Zmienna jest jedną z nich. Plik Pythona jest zapisywany z '.py ' rozszerzenie i każdy plik Python nazywa się modułem. Klasy, funkcje i zmienne są zdefiniowane przez moduł. __nazwa__ zmienna jest ustawiona na __główny__ Jeśli interpreter Python uruchomi moduł w programie głównym. __nazwa__ Zmienna jest ustawiona na nazwę modułu, jeśli plik Python importuje moduł z innego modułu. „Jeśli __name__ == __main__” Instrukcja służy do sprawdzenia, czy moduł jest importowany, czy nie. W tym samouczku pokazano różne zastosowania tego stwierdzenia.

Przykład-1: Proste użycie zmiennej __name__

Utwórz plik Python z następującym skryptem, który wywołuje główny() funkcja, jeśli wartość __nazwa__ zmienna jest __główny__. główny() Funkcja została zadeklarowana w skrypcie w celu zdefiniowania stwierdzeń. Wartość ciągu i wartość liczbowa zostaną wydrukowane po wywołaniu główny() funkcjonować. Do skryptu nie został zaimportowany moduł. Więc 'Jeśli' Oświadczenie zostanie zwrócone PRAWDA i główny() funkcja zostanie wywołana.

#Zdefiniuj główną funkcję
def main ():
#PROPREM prosta wiadomość
Drukuj („Testowanie użycia zmiennej __name__.")
#Initializuj zmienną z liczbą
n = 15
#Printu wartość zmiennej
druk („wartość n to”, n)
#Sprawdź wartość __name__
Jeśli __name__ == "__main__":
#Funkcja main ()
główny()

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Dane wyjściowe pokazuje, że 'Jeśli' Warunek powrócił true, a główny() Funkcja została wywołana.

Przykład-2: Wydrukuj wartość zmiennej __name__

Utwórz plik Python z następującym skryptem, który wywołuje główny() funkcja, jeśli wartość __nazwa__ zmienna jest __główny__, Jak poprzedni przykład. Dwie wartości liczbowe zostaną pobrane od użytkownika i wydrukują sumę liczb po wywołaniu funkcji Main (). Warunek „jeśli” sprawdzi wartość zmiennej __name__. Jeśli warunek powróci PRAWDA, wtedy zostanie wydrukowana wiadomość, wartość __nazwa__ zmienna zostanie wydrukowana, a główna funkcja zostanie wywołana. Jeśli warunek powróci FAŁSZ, wtedy zostanie wydrukowana wiadomość, a wartość __nazwa__ Zmienna zostanie wydrukowana.

#Zdefiniuj główną funkcję
def main ():
#PROPREM prosta wiadomość
num1 = int (input („wprowadź pierwszą liczbę:”))
num2 = int (input („Wprowadź drugą liczbę:”))
sum = num1 +num2
#Printu wartość sumy
Drukuj („Suma %d i %d to %d” %(NUM1, NUM2, suma))
#Sprawdź wartość zmiennej __name__
Jeśli __name__ == "__main__":
Drukuj („Python Interpreter zadzwonił bezpośrednio.")
wydrukuj („Wartość zmiennej __name__ to”+__ name__)
główny()
w przeciwnym razie:
Drukuj („Interpreter Python nie wywołał bezpośrednio.")
print („Wartość atrybutu __name__ to”+__ name__)

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Dane wyjściowe pokazuje, że główny() funkcja została wywołana, ponieważ wartość __nazwa__ zmienna jest __główny__. 7 i 9 zostały uznane za dane wejściowe od użytkownika, a suma 7 i 9, która wynosi 16, została wydrukowana na wyjściu.

Przykład-3: użycie zmiennej __name__ z klasą

Utwórz plik Pythona z następującym skryptem, który definiuje klasę do obliczenia obszaru okręgu i prostokąta. Jeśli wartość __nazwa__ zmienna jest __główny__, wtedy wejście zostanie pobrane od użytkownika. Następnie zostanie utworzony obiekt klasy. circle_area () Metoda zostanie wywołana, jeśli wartość wejściowa jest 'koło'. Rectangle_area () Metoda zostanie wywołana, jeśli wartość wejściowa jest 'prostokąt'. Wiadomość zostanie wydrukowana, jeśli wartość wejściowa nie pasuje do 'koło' Lub 'prostokąt'.

#Declare the Class
klasa Calculatearea:
#Declare Constructor
def __init __ (self, typ):
samego siebie.typ = typ
#Declare Metoda obliczania obszaru koła
def circle_area (self, promień):
samego siebie.promień = promień
obszar = 3.14 * ja.promień * ja.promień
Drukuj („obszar koła to”, obszar)
#Metoda declare do obliczania obszaru prostokąta
def prostokąt_area (self, h, w):
samego siebie.Wysokość = h
samego siebie.szerokość = w
obszar = ja.Wysokość * ja.szerokość
wydruku („obszar prostokąta to”, obszar)
#Sprawdź zmienną __name__
Jeśli __name__ == '__main__':
areatype = wejście („okrąg lub prostokąt?\N")
Object = Calculatearea (Areatype.niżej())
Jeśli obiekt.Type == „Circle”:
obiekt.circle_area (4)
obiekt elif.Type == „prostokąt”:
obiekt.Rectangle_area (10, 20)
w przeciwnym razie:
wydruku („Nie znaleziono typu pasujące.")

Wyjście:


Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Na następujących wyjściach ''koło' została przyjęta jako wartość wejściowa, a obszar okręgu RADIUS 4 został wydrukowany na wyjściu.

Na następujących wyjściach ''prostokąt' Został uznany za wartość wejściową i powierzchnię prostokąta (wartość wysokości, 10 i wartość szerokości, 20) zostały wydrukowane na wyjściu.

Na następujących wyjściach ''kwadrat' został uznany za wartość wejściową, która nie pasuje do 'koło' Lub 'prostokąt'.

Przykład-4: użycie zmiennej __name__ po zaimportowaniu modułu

Utwórz plik Python o nazwie plik 1.py z następującym skryptem, który zostanie zaimportowany do innego pliku Pythona. Ten skrypt wydrukuje prostą wiadomość i wiadomość oparta na __nazwa__ zmienny.

plik 1.py
# Python Plik jeden moduł
#PROPREM prosta wiadomość
wydrukuj („Wiadomość z pliku1.py ")
#Printu wartość zmiennej __name__
drukuj („Wartość __name__ jest”, __name__)
Jeśli __name__ == "__main__":
Drukuj („Python Interpreter zadzwonił bezpośrednio.")
w przeciwnym razie:
Drukuj („Interpreter Python nie wywołał bezpośrednio.")

Utwórz kolejny plik Python z następującym skryptem, który zaimportuje plik 1.py Jako moduł w skrypcie. Ten skrypt wydrukuje prostą wiadomość i wiadomość oparta na __nazwa__ zmienna po importowaniu plik 1 moduł.

#Import File1.py
Importuj plik 1
#PROPREM prosta wiadomość
Drukuj („Witamy w Linuxhint”)
#Printu wartość zmiennej __name__
drukuj („Wartość __name__ jest”, __name__)
Jeśli __name__ == "__main__":
Drukuj („Python Interpreter zadzwonił bezpośrednio.")
w przeciwnym razie:
Drukuj („Interpreter Python nie wywołał bezpośrednio.")

Wyjście:


Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Wyjście pokazuje, że wartość __nazwa__ Zmienna jest zmieniana na nazwę modułu po zaimportowaniu innego modułu w skrypcie.

Wniosek

Cel użycia __nazwa__ Zmienna została wyjaśniona w tym samouczku przy użyciu różnych rodzajów przykładów, aby pomóc użytkownikom w prawidłowym użyciu ich w skrypcie.