Python 主函数和方法:理解 def Main()
⚡ 智能摘要
Python main 函数标志着解释器开始运行程序的起点。它通过 def main() 定义,并与 if __name__ == “__main__” 条件语句配合使用,将可重用的模块代码与独立脚本的执行分离。

什么是 Python 主要功能?
此 Python 主功能 是任何程序的起点。当程序运行时, Python 解释器按顺序执行代码。主函数只有在作为解释器运行时才会执行。 Python 程序。如果作为模块导入,则不会运行主函数。
def main() 函数是什么 Python为了理解这一点,请参考以下示例代码,它是核心代码的一部分。 Python 编程 基本:
def main() 示例 1
def main():
print ("Hello World!")
print ("Guru99")
这里,我们得到了两段打印输出——一段定义在主函数中,即“Hello World!”,另一段是独立的,即“Guru99”。当你运行函数 def main() 时:
- 仅有的 ”Guru99”打印出来
- 而不是代码“Hello World!”
这是因为我们没有声明调用 函数“if__name__==“__main__”。
重要的是,在定义主函数后,通过 if__name__== “__main__” 调用代码,然后运行代码,只有这样,您才会在编程控制台中获得输出“hello world!”。考虑以下代码
def main() 示例 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
Guru本例中打印的是99。
以下是解释,
- 日期 Python 解释器读取源文件时,它将执行其中找到的所有代码。
- 日期 Python 将“源文件”作为主程序运行,它将特殊变量(__name__)设置为具有值(“__main__”)。
- 当你在 python 中执行 main 函数时,它会读取“if”语句并检查 __name__ 是否等于 __main__。
- In Python “如果__name__ == “__main__” 允许您运行 Python 文件 可重复使用的模块或独立程序。
为什么要使用 main() 函数? Python?
Python 它并不强制你编写主函数,但经验丰富的开发者几乎在每个非简单的脚本中都会使用主函数。`def main()` 模式使文件结构更加清晰,并确保代码可以安全地重用。以下是使用它的主要原因:
- 清晰的入口点: main() 函数可以准确地告诉读者程序从哪里开始,因此逻辑很容易理解。
- 可重用模块: Code 受 if __name__ == “__main__” 保护,仅在直接执行时运行,因此其他文件可以导入您的函数而不会产生副作用。
- 本地范围: 在 main() 函数内部创建的变量是局部变量,这样可以避免与模块中其他地方的全局名称发生意外冲突。
- 更便捷的测试: 将逻辑隔离在 main() 函数中,可以让测试套件直接调用它并检查结果。
- 共同约定: main() 函数是程序入口点的公认标志,它能提高跨团队的可维护性。
简而言之,`main()` 函数是可选的。 Python但它能保证大型程序的可读性、可测试性和导入安全性。
__name__ 变量和 Python 模块
理解 __name__ 变量的重要性 Python main函数方法,考虑以下代码:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
现在考虑,代码作为模块导入
import MainFunction
print("done")
以下是代码解释: 像 C 一样, Python 使用 == 进行比较,而使用 = 进行赋值。 Python 解释器以两种方式使用 main 函数
直接运行:
- __name__=__main__
- if 语句 == True,则执行 _main_ 中的脚本
作为模块导入
- __name__= 模块的文件名
- if 语句 == false,则不会执行 __main__ 中的脚本
当代码执行时,它会用“if”检查模块名称。这种机制确保主函数仅在直接运行时执行,而不是作为模块导入时执行。
以上例子 Python 3 个代码,如果你想使用 Python 2,请考虑以下代码
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3,不需要使用 if__name。以下代码也有效
def main():
print("Hello World!")
main()
print("Guru99")
注意: 确保在定义主函数后,留下一些缩进,并且不要在 def main(): 函数正下方声明代码,否则会出现缩进错误。
如何将命令行参数传递给 Python main() 函数
main() 函数是处理用户通过命令行传递的输入的自然位置。 Python 将这些值存储在 sys.argv 列表中,该列表由标准的 sys 模块提供。第一个元素 sys.argv[0] 是脚本名称,其后的每个值都是用户提供的参数。
以下示例从 main() 函数内部读取并打印命令行参数:
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
如果你将文件保存为 script.py 并运行 python script.py alpha beta程序会打印脚本名称和列表 ['alpha', 'beta']。由于这些值是在 main() 函数内部传入的,因此逻辑保持清晰有序,易于测试。
以下是一些使用命令行输入时的实用技巧:
- 去掉脚本名称: 使用 sys.argv[1:] 可以只读取用户输入的参数。
- 真正的工具请使用 argparse: 内置的 argparse 模块解析标志、选项和帮助文本比手动读取 sys.argv 要安全得多。
- 返回退出代码: 将调用包装成 sys.exit(main()),这样 main() 的返回值就成为进程的退出状态。
- 尽早验证: 在运行程序其余部分之前,请检查 main() 函数顶部的参数数量和类型。
这种模式将一个简单的脚本变成了一个可靠的命令行工具,同时保持ping 每一步都在一个可测试的 main() 函数内进行。
Python main() 函数与其他编程语言的比较
来自 C 语言的开发者, C++ 或 Java 通常需要一个强制性的 main() 函数。 Python 它的工作原理不同,因为它是一种解释型语言,所以解释器会从文件的第一行到最后一行执行文件。`main()` 函数 Python 因此,这是一种约定俗成的规则,而非硬性规定。
- C, C++、C# 和 Java: main() 函数是必需的入口点。运行时会自动调用它,并且每个程序只能有一个 main() 函数。
- Python: 不需要 `main()` 函数。程序从文件的第一行开始执行,`def main()` 函数只有在你的代码调用它时才会运行。
- 守卫: if __name__ == “__main__” 代码块 Python 其作用类似于编译后的 main(),用于标记仅当文件是主程序时才应运行的代码。
因此,尽管其他语言强制要求使用 main() 入口点, Python 这样一来,选择权就落到了您手中,通过约定俗成的方式,而不是通过编译器规则,实现了同样的清晰度。




