Python main file example

Функция main() в Python – примеры использования

В этом руководстве мы узнаем о функции main() в языке программирования Python. И разберем, как мы можем использовать атрибут __name__ в программе Python, чтобы динамически выполнять его в различных контекстах. Давайте начнем с определения функции main() в Python.

Что такое функция main() в Python?

Функция main() в Python считается уникальной функцией для нескольких языков программирования, также называемой точкой выполнения для файла программы. Однако интерпретатор языка программирования Python выполняет каждую из строк последовательно, начиная с верхней части файла, и не имеет явной функции main().

Python предоставляет другие способы для определения точки выполнения. Один из них использует функцию main() вместе со свойством __name__ файла python.

Теперь давайте разберемся с переменной __name__ в языке программирования Python.

Что такое аргумент __name__ в Python?

Аргумент __name__ в Python – это уникальная основная переменная, которая отображает имя текущего модуля.

Это свойство предлагает разные значения в зависимости от того, где мы запускаем файл Python. Давайте рассмотрим пример, чтобы лучше понять свойство __name__.

Выполнение файла Python как скрипта

Допустим, у нас есть файл Python, известный как myworld.py, содержащий следующее содержимое:

$ python myworld.py __main__

В приведенном выше программном файле мы напечатали значение свойства __name__. В результате значение переменной __name__ устанавливается на __main__.

Выполнение файла Python как модуля

Мы также можем выполнить файл Python как модуль. Для этого нам нужно импортировать требуемый файл в другую программу Python. Давайте рассмотрим следующий пример, чтобы правильно понять концепцию.

Предположим, что мы создали файл Python как python_main.py в том же каталоге, что и файл myworld.py со следующим содержимым:

$ python python_main.py myworld

В приведенном выше программном файле мы импортировали модуль как myworld. В результате, когда мы выполняли файл python_main.py, программа запускала полный код в файле модуля. Однако мы можем заметить, что вместо __main__ отображается имя модуля myworld.

Это происходит потому, что в контексте выполнения файла Python как модуля само имя модуля присваивается переменной __name__.

Использование оператора if с переменной __name__

Поскольку мы уже поняли, как присваиваются значения свойству __name__, мы можем использовать оператор if, чтобы запускать один и тот же файл Python по-разному в разных контекстах.

Читайте также:  Filter and reduce python

Давайте рассмотрим следующий пример, в котором мы изменили содержимое файла myworld.py.

def main(): print("This is my Python program.") if __name__ == "__main__": main()
$ python myworld.py This is my Python program.

В приведенном выше фрагменте кода мы определили функцию main() для печати некоторых строк для пользователей. Затем мы использовали условное предложение if, чтобы проверить, равно ли значение переменной __name__ __main__, после чего будет выполнена функция main(). В результате, когда мы выполняем файл myworld.py, для пользователя печатается строковое сообщение.

Однако, когда мы выполняем файл как модуль, импортируя его в python_main.py, программа не возвращает никаких результатов, поскольку функция main() не вызывается.

Таким образом, мы можем заключить, что пользовательская функция main(), которую мы определили в файле myworld.py, может выполняться только как автономный скрипт, но не как импортированный модуль.

Это стандартный метод явного определения функции main() в Python и один из самых популярных вариантов использования свойства __name__ файла Python.

Источник

№37 Функция __main__ / для начинающих

В различных руководствах по Python часто используется функция main() . Но иногда это может быть и лишним.

Лаконичность — важный элемент программирования. И вполне логично задавать вопрос о том, зачем разработчику добавлять лишние строки в программу. Функция main() требует дополнительных строк, но она служит определенной цели.

В этом материале речь пойдет о функции main() , о том, какую пользу она приносит, а также о том, как правильно использовать ее в коде.

Что такое функция main()?

Main — это специальная функция, которая позволяет добавить больше логики в структуру программ. В Python можно вызвать функцию в нижней части программы, которая и будет запущена. Рассмотрим такой пример:

 
def cookies():
print("Печенье вкусное!")

print("Дайте печенье.")
cookies()
Дайте печенье. Печенье вкусное!

Можно увидеть, что выражение «Дайте печенье.» выводится до «Печенье вкусное!», потому что метод cookies() не вызывается вплоть до последней строки, а именно в этой функции хранится предложение «Печенье вкусное!».

Такой код работает, но его довольно сложно читать. В таких языках программирования, как C++ и Java весь основной код программы хранится внутри основной функции. Это хороший способ для распределения всего кода программы. Те, кто только знакомится с Python, но уже работал, например, с C++ будут благодарны за использование функции main() .

Как создать функцию main

Есть две части основной функции Python. Первая — сама функция main() . В ней хранится код основной программы. Вызовем функцию cookies() и выведем выражение «Дайте печенье.» из функции main() :

 
def cookies():
print("Печенье вкусное!")

def main():
print("Дайте печенье.")
cookies()

Теперь вызовем функцию в конце программы:

Дайте печенье. Печенье вкусное!

Результат не поменялся. Но теперь сам код читать легче. Пусть в нем и больше строк (и одна дополнительная строка), вполне очевидно, что именно происходит:

  • Cookies() — функция, которая выводит «Печенье вкусное!».
  • Когда программа запускается, определяются две функции: cookies() и main() .
  • Затем функция main() вызывается.
  • «Дайте печенье.» выводится в консоли.
  • Затем вызывается функция cookies() , которая выводит в консоль «Печенье вкусное!».

Код не только чище, но и логичнее. Если вы пришли из другого языка, например, Java, но знаете, насколько это удобно.

Значение __name__

Прежде чем переходить к инструкциям __name__ и __main__ , которые часто используются вместе, нужно обсудить __name__ . __name__ хранит название программы.

Если запустить файл прямо, то значением __name__ будет __main__ . Предположим, что файл называется print_name.py :

Этот код можно запустить следующим образом:

Предположим, что этот код был импортирован в качестве модуля в файл main.py :

Код внутри print_name.py исполняется потому что он был импортирован в качестве модуля в основной программе. Файл print_name выводит __name__ в консоль. Поскольку print_name был импортирован в качестве модуля, то и значением __name__ является print_name .

if __name__ == __main__ в Python

Вы наверняка встречали следующую конструкцию в программах на Python в функции main :

Что она значит? В Python любая переменная, начинающаяся с двух символов нижнего подчеркивания ( __ ), является специальной. Это зарезервированные значения, которые выполняют определенную роль в программе.

__main__ указывает на область видимости, где будет выполняться код. Если запустить Python-файл прямо, то значением __name__ будет __main__ . Если же его запустить в качестве модуля, то значением будет уже не __main__ , а название модуля.

Это значит, что строка выше вернет True только в том случае, если программа будет запущена прямо.

Если же ссылаться на файл как на модуль, то содержимое конструкции if не будет выполнено. Рассмотрим на примере.

Как использовать __name__ и __main__

Создадим новый скрипт на Python под названием username.py. В коде будем просить пользователя ввести его имя и проверять, не является ли его длина больше 5. Если символов не больше 5, то попросим ввести имя снова.

Начнем с определения глобальной переменной для хранения имени пользователя:

Источник

Python Main Function & Method Example: Understand def Main()

Python main function is a starting point of any program. When the program is run, the python interpreter runs the code sequentially. Main function is executed only when it is run as a Python program. It will not run the main function if it imported as a module.

What is the def main() function in Python? To understand this, consider the following example code

def main() Example 1

def main(): print ("Hello World!") print ("Guru99")

Python Main Function

Here, we got two pieces of print- one is defined within the main function that is “Hello World!” and the other is independent, which is “Guru99”. When you run the function def main ():

It is because we did not declare the call function “if__name__== “__main__”.

It is important that after defining the main function, you call the code by if__name__== “__main__” and then run the code, only then you will get the output “hello world!” in the programming console. Consider the following code

def main() Example 2

def main(): print("Hello World!") if __name__ == "__main__": main() print("Guru99")

Python Main Function

  • When Python interpreter reads a source file, it will execute all the code found in it.
  • When Python runs the “source file” as the main program, it sets the special variable (__name__) to have a value (“__main__”).
  • When you execute the main function in python, it will then read the “if” statement and checks whether __name__ does equal to __main__.
  • In Python “if__name__== “__main__” allows you to run the Python files either as reusable modules or standalone programs.

The __name__ variable and Python Module

To understand the importance of __name__ variable in Python main function method, consider the following code:

def main(): print("hello world!") if __name__ == "__main__": main() print("Guru99") print("Value in built variable name is: ",__name__)

The __name__ variable and Python Module

Now consider, code is imported as a module

import MainFunction print("done")

The __name__ variable and Python Module

Here, is the code explanation:

Like C, Python uses == for comparison while = for assignment. Python interpreter uses the main function in two ways

import as a module

  • __name__= module’s filename
  • if statement == false, and the script in __main__ will not be executed

When the code is executed, it will check for the module name with “if.” This mechanism ensures, the main function is executed only as direct run not when imported as a module.

Above examples are Python 3 codes, if you want to use Python 2, please consider following code

def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"

In Python 3, you do not need to use if__name. Following code also works

def main(): print("Hello World!") main() print("Guru99")

Note: Make sure that after defining the main function, you leave some indent and not declare the code right below the def main(): function otherwise, it will give indent error.

Источник

Оцените статью