Python 运行,带你找入口,快速读懂程序

liftword4周前 (02-14)技术文章13

有 C 或 Java 编程开发经验的软件开发者,初次接触 python 程序,当你想快速读懂 python 项目工程时,是否觉得 python 程序有些太过随意,让你看有些无所适从,进而有些茫然。这是因为,在 Python 中,没有像 C 或 Java 那样的显式入口函数(如 main 函数)。本文就带你清除这些模糊,快速拉近你与 python 的距离。当然,即使对于无开发任何编程经验的初学者来说,本文也是很好的引导,助力你更好地理解使用 python。

所谓万事开头难,想搞清楚程序的运行脉络,首先需明确它的运行入口运行入口程序开始执行的地方。通常情况下,Python 脚本是从文件的第一行开始顺序执行的,也就是这种的直接,让你产生了诸多的疑惑。所以,你要清楚的知道有哪些方式可以明确地指定程序的入口点。以下是几种常见的方法:

1. 直接运行脚本

Python 脚本默认从文件的第一行开始执行。例如,创建一个文件 main.py


print("Hello, World!")


在终端运行:


python main.py


输出:


Hello, World!


2. 使用 if __name__ == "__main__":

这是 Python 中最常见的指定程序入口的方式。通过检查 __name__ 变量,可以判断当前模块是直接运行还是被导入。

示例:


def main():

print("Hello, World!")


if __name__ == "__main__":

main()


解释:

  • 当脚本直接运行时,__name__ 的值为 "__main__"main() 函数会被调用。
  • 当脚本被导入为模块时,__name__ 的值为模块名,main() 函数不会被执行。

3. 使用 def main() 函数

将程序的主要逻辑放在 main() 函数中,然后在 if __name__ == "__main__": 中调用 main()。这是一种良好的编程实践,可以使代码更清晰、模块化。

示例:


def greet(name):

print(f"Hello, {name}!")


def main():

name = input("Enter your name: ")

greet(name)


if __name__ == "__main__":

main()


4. 使用 argparse 处理命令行参数

如果你的程序需要处理命令行参数,可以使用 argparse 模块,并将逻辑放在 main() 函数中。

示例:


import argparse


def greet(name):

print(f"Hello, {name}!")


def main():

parser = argparse.ArgumentParser(description="Greet a user.")

parser.add_argument("name", help="The name of the user")

args = parser.parse_args()

greet(args.name)


if __name__ == "__main__":

main()


运行:


python main.py Alice


输出:


Hello, Alice!


5. 使用 setuptools 定义入口点

如果你正在开发一个 Python 包,并希望为用户提供一个命令行工具,可以使用 setuptoolsentry_points 来定义入口点。

示例:
setup.py 中定义入口点:


from setuptools import setup


setup(

name="my_package",

version="0.1",

py_modules=["my_module"],

entry_points={

"console_scripts": [

"my_command=my_module:main",

],

},

)


my_module.py 中定义 main() 函数:


def main():

print("Hello from my_command!")


安装包后,可以直接在终端运行:


my_command


输出:


Hello from my_command!


总结

直接运行脚本:默认从文件的第一行开始执行。

if __name__ == "__main__"::推荐的方式,明确指定程序入口。

def main()函数:将主要逻辑放在 main() 函数中,使代码更清晰。

argparse:处理命令行参数时使用。

setuptools 入口点:为 Python 包定义命令行工具。

认真读完此文后,当你再面对 Python 项目工程时,想必你一定不会再迷茫。

当然,作为 python 编程的初学者,当你选择使用 python 进行程序开发时,你可以根据你的需求选择合适的方式,通常推荐使用 if __name__ == "__main__":def main() 函数结合的方式。


爱学习的小伙伴,关注不迷路哟~

相关文章

python运行过程解析_python 运行结果

使用python一段时间,如果问下面这些问题你能明确回答吗?包与模块是什么?__init__.py、__main__.py是做什么用的?import语句背后做了什么?python程序是怎么加载的?都说...

如何运行python_windows下如何运行python

上期我们了解了python,那么这期我们直接上干货,怎么样运行python。首先,我们百度搜索python的官网,建议下载python3.7.几的版本。几是指数字,所有3.7.几都可以,因为3.7的...

写完python后如何运行程序_python编写后怎么运行

  python有两种运行方式,一种是在python交互式命令行下运行; 另一种是使用文本编辑器直接在命令行上运行。  注:以上两种运行方式均由CPython解释器编译运行。 当然,也可以将pytho...

Python随记「16」——在 Windows 上运行 Python 程序

1)为了方便运行你的Python 程序,可以创建一个.BAT 批处理文件,用 py.exe 来运行 Python 程序。要创建一个批处理文件,就创建一个新的文本文件,包含一行内容,类似下面这样:@py...

Python初学者请注意!别这样直接运行python命令

晓查 编译整理 量子位 报道 | 公众号 QbitAIPython已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入.py文件中,就能快速运行。而且Pyt...