Возможно, вы видели эту строку кода, если __name__=="__main__": часто встречается в скриптах Python, но не знаете, какова ее реальная цель. Не волнуйтесь, в этом коротком блоге мы обсудим это
Когда вы напрямую запускаете программу или скрипт, Python автоматически присваивает «main» специальной переменной name. По сути, это делается для того, чтобы указать, что файл является здесь «основным» сценарием и запускается напрямую, а не импортируется в другой.
Чтобы это понять, создайте новый скрипт Python, скажем, назовите его «example.py» и напишите:
print("Name of Script: ", __name__)
Запустите это, и вы увидите выходное имя сценария: __main__. Это просто потому, что файл запускается напрямую.
Теперь создайте еще один файл сценария Python и импортируйте example.py в этот файл. Запустите его, и вы увидите другой результат с надписью «Имя сценария: пример». Это просто потому, что теперь вместо того, чтобы запускать его напрямую, мы импортируем скрипт и запускаем его косвенно. Таким образом, Python теперь показывает фактическое имя файла.
Давайте внесем некоторые изменения в наш файл примера, чтобы мы могли его лучше понять.
def s_name(): print("Name of Script: ", __name__) s_name() def greet(): print("Hello! How are you doing?") if __name__=="__main__": greet()
Теперь, если вы запустите это напрямую, все будет выполнено идеально, но если вы запустите другой файл, в который импортируете скрипт example.py, вы заметите, что вызов функции приветствия не был выполнен. Почему это?
Это из-за условного if. Условие проверяет, запускается ли файл напрямую или нет. Если оно выполняется напрямую, main будет присвоено специальной переменной name, которая сделает это условие истинным, и все внутри условия будет выполняться как обычно.
Но с другой стороны, если вы импортируете его в другой файл и запускаете его оттуда косвенно, тогда оператор условия не будет истинным, и все, что было помещено внутри условия, не будет выполнено.
В этом смысл этого условного утверждения. Это предотвращает автоматический запуск ненужных строк кода интерпретатором Python при импорте скрипта как модуля.
Однако мы можем вызывать эти функции, даже когда импортируем скрипт как модуль. Например:
import example example.greet()
Таким образом, мы можем идеально вызывать любые функции из импортированного модуля, даже если условие не выполнено.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3