Il nome dello script o del modulo Python attualmente in esecuzione è memorizzato nella variabile speciale __name__ di Python. Python 3.0 ha introdotto la variabile __name__, che è assente in Python 2. x. Il valore corrente dello script o del modulo Python, __main__, viene assegnato alla variabile __name__ mentre viene eseguito.
Cosa significa _nome_?
Python ha una variabile incorporata chiamata __name__ che memorizza il nome dello script o del modulo attualmente in esecuzione. Il nome dello script o del modulo viene memorizzato nella variabile __name__ a meno che il modulo corrente non sia in esecuzione, nel qual caso gli viene assegnato il valore __main__.
Di conseguenza, quando viene eseguito uno script Python, il valore della sua variabile __name__ dovrebbe sempre essere __main__ se viene importato in un altro script Python. In caso contrario, verrà visualizzato il nome del modulo.
Esempio :
Per comprendere meglio questo, usiamo un esempio. Fare un script in Python chiamato testing.py, e aggiungervi il seguente codice:
# Code to define a function def anything(): print('Value of the __name__ : ', __name__) anything()
Produzione:
Value of the __name__ : __main__
Spiegazione:
Lo script viene eseguito immediatamente come programma principale, come indicato dall'output 'Valore del nome: main.' In Python, il valore della variabile __name__ dello script viene automaticamente impostato su '__main__' quando lo script viene eseguito direttamente. Questo output conferma che lo script viene eseguito direttamente anziché importato come modulo in un altro script
Costruiamo ora un altro script Python chiamato mains.py e importare quello precedente al suo interno.
Esempio :
# importing testing.py import testing testing.anything()
Produzione:
Value of the __name__ : testing
Spiegazione:
test. any() è il metodo che viene eseguito quando lo script testing.py viene importato in un altro script Python utilizzando import testing. In questa situazione, il nome del modulo, in questo caso 'testing', viene impostato come valore della variabile __name__ in testing.py anziché '__main__.' Per questo motivo, l'output del testing. any() è 'Valore di __name__: testing.' Questo illustra come l'esecuzione diretta dello script e la sua importazione come modulo influiscono sul valore della variabile __name__.
mappa reactjs
Utilizzando la condizione if name == main :
Noi usiamo il se dichiarazione e la condizione __nome__ == __principale__ dichiararlo certo codice Python dovrebbe essere solo eseguito quando lo script viene eseguito direttamente .
convertire una stringa in intero in Java
Esempio :
# importing testing.py import testing if __name__ == __main__: testing.anything()
In questo caso, la capacità del modulo o dello script corrente di essere eseguito in modo indipendente viene accertata utilizzando la stringa __main__. Per indicare all'interprete Python che una parola chiave nella variabile __name__ è riservata o speciale, ci sono due trattini bassi su entrambi i lati del termine.
Esempio di codice per nome in Python:
Come detto prima, quando eseguiamo un file di codice, il codice viene eseguito direttamente, non viene nemmeno importato in un altro file, e di conseguenza, il valore della variabile __name__ cambia in __main__.
# defining a function def anything(): print('It is a function in the ScriptP1.') if __name__=='__main__': anything() print('Called from the ScriptP1.') else: print('ScriptP1 is imported into another file.')
Produzione:
It is a function in the ScriptP1. Called from the ScriptP1.
Spiegazione:
La funzione any() specificata nello script ScriptP1 viene eseguita direttamente come programma principale, come mostrato dall'output 'È una funzione nello ScriptP1.' seguito da 'Chiamato da ScriptP1'. Quando lo script viene eseguito direttamente in Python, la variabile __name__ è impostata su '__main__'; di conseguenza, la condizione if __name__=='__main__': restituisce True, chiamando la funzione any(). L'istruzione print che segue verifica che lo script venga effettivamente eseguito direttamente.
Ora creiamo un nuovo file di script Python denominato ScriptP2.py, importiamo al suo interno ScriptP1.py e proviamo a chiamare il metodo ScriptP1 any().
Codice : IL ScriptP2.py il codice è fornito qui:
import ScriptP1 if __name__=='__main__': ScriptP1.anything() print('Called from the ScriptP2.')
Produzione:
ScriptP1 is imported into another file. It is a function in the ScriptP1. Called from the ScriptP2.
Spiegazione:
Lo script Python fornito mostra come importare il modulo 'ScriptP1' nello script attivo. Il metodo 'anything()' è presente in 'ScriptP1' e viene chiamato nello script principale. Viene chiamata questa funzione e lo script restituisce 'Chiamato dallo ScriptP2'. per indicare che la chiamata alla funzione è stata completata. Questo flusso di eventi indica che la funzione specificata in 'ScriptP1' era accessibile ed eseguita correttamente nel contesto dello script attualmente in esecuzione, identificato come 'ScriptP2'.
Quando l'istruzione import per ScriptP1 veniva eseguita all'interno di ScriptP2, la variabile __name__ aveva il valore ScriptP1 (il nome del modulo); ma, poiché ScriptP2 è stato il primo script ad essere eseguito, ora avrà il valore __main__.
Stampa del valore di __name__ :
Stampiamo il valore della variabile __name__ in ogni fase di esecuzione per aiutarti a capirlo meglio.
Esempio : Il codice sorgente dello script Python ScriptP1.py è fornito di seguito:
print('Value or the variable __name__ : ' + __name__)
Produzione:
Value or the variable __name__ : __main__
Spiegazione:
ordinamento dell'array java
L'esempio di codice Python fornito restituisce il valore della variabile __name__ che, quando lo script viene eseguito direttamente, restituisce 'main.' Ciò significa che quando lo script viene avviato direttamente, il blocco di codice che segue la condizione if __name__ == '__main__': verrà eseguito anziché essere importato come modulo in un altro script. Questo tipo di comportamento viene spesso utilizzato per distinguere tra l'esecuzione di uno script come applicazione principale e l'importazione dello stesso in un altro script come modulo.
Esempio 2: Ed ecco il codice sorgente dello script ScriptP2.py:
# importing the file ScriptP1.py import ScriptP1 print('Value or the variable __name__ : ' + __name__)
Produzione:
Value or the variable __name__ : __main__
Spiegazione:
Lo script Python fornito utilizza l'istruzione import per importare il file 'ScriptP1.py. ' Quando viene eseguito, 'main' viene stampato come valore della variabile __name__. Ciò significa che invece di essere importato come modulo in un altro script, lo script viene eseguito direttamente come applicazione principale. Quando si eseguono script Python, questo è il comportamento normale; il contesto di esecuzione dello script si riflette nella variabile __name__.
Riepilogo :
Nella maggior parte dei linguaggi di programmazione, il metodo o la funzione principale viene solitamente utilizzato come punto in cui viene eseguito qualsiasi programma. Ma che dire di Python? L'esecuzione di un programma Python (script) normalmente inizia alla riga zero o al livello di indentazione del programma 0. La creazione di una variabile __name__, tuttavia, avviene prima dell'esecuzione di un programma Python. Questa variabile potrebbe essere utilizzata per sostituire il metodo main in Python.