在python中,主程序是指在执行python脚本时被执行的顶层代码块。主程序包含了脚本中从最开始到最末尾的顶级可执行语句。当python脚本被运行时,解释器会从脚本的第一行开始逐行执行代码,直到到达脚本的末尾。
主程序通常包含了整个脚本的执行流程,包括函数和其他代码块的调用。当脚本执行时,主程序会按照从上到下的顺序执行相应代码。
示例1:
假设有以下python脚本'main_program.py':
# main_program.py
def greet(name):
print(f"Hello, {name}!")
def main():
print("This is the main program.")
# 调用自定义函数
greet("Alice")
# 执行其他代码
for i in range(3):
print(f"Count: {i}")
if __name__ == "__main__":
# 当脚本被直接运行时,__name__ 的值为 "__main__"
main()
在这个示例中:
1、定义了一个名为'greet'的函数 ,用于打印问候信息。
2、定义了一个名为'main'的函数,包含了主程序的执行流程,包括调用'greet'函数和一个简单的循环。
3、使用'if __name__="__main__"来判断当前脚本是否被直接运行,这个条件语句的目的是,当脚本被直接运行(而不是被导入为模块时),执行'main'函数。
如果在命令中执行这个脚本:
python main_program.py
将会输出:
This is the main program.
Hello, Alice!
Count: 0
Count: 1
Count: 2
这里,main函数包含了主程序的执行流程,并且由于 if __name__="__main__":
的判断,确保只有在直接运行脚本时才执行 main 函数。当脚本作为模块被导入时,主程序不会自动执行。
示例2:
假设有两个python脚本,一个是'module.py'另一个是'main_script.py'。
'module.py':
# module.py
def hello():
print("Hello from module.py!")
if __name__ == "__main__":
print("This is the main program in module.py.")
hello()
'main_script.py':
# main_script.py
import module
def greet():
print("Greetings from main_script.py!")
if __name__ == "__main__":
print("This is the main program in main_script.py.")
greet()
module.hello()
在这个示例中:
- module.py定义了一个hello函数,并且通过 if __name__="__main__"
:
判断结构,确保只有在 module.py被直接运行时才执行一部分代码。 - 'main_script.py' 导入了 module 模块,并且也使用了 if __name__="__main__"
:
结构,以便在脚本被直接运行时执行一部分代码。
运行:
若执行module.py:
python module.py
输出将是:
This is the main program in module.py.
Hello from module.py!
如果执行main_script.py:
python main_script.py
输出将是:
This is the main program in main_script.py.
Greetings from main_script.py!
Hello from module.py!