百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

itomcoil 2025-02-20 15:56 28 浏览

有 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() 函数结合的方式。


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

相关推荐

MySQL修改密码_mysql怎么改密码忘了怎么办

拥有原来的用户名账户的密码mysqladmin-uroot-ppassword"test123"Enterpassword:【输入原来的密码】忘记原来root密码第一...

数据库密码配置项都不加密?心也太大了吧!

先看一份典型的配置文件...省略...##配置MySQL数据库连接spring.datasource.driver-class-name=com.mysql.jdbc.Driverspr...

Linux基础知识_linux基础入门知识

系统目录结构/bin:命令和应用程序。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写,该目录...

MySQL密码重置_mysql密码重置教程

之前由于修改MySQL加密模式为mysql_native_password时操作失误,导致无法登陆MySQL数据库,后来摸索了一下,对MySQL数据库密码进行重置后顺利解决,步骤如下:1.先停止MyS...

Mysql8忘记密码/重置密码_mysql密码忘了怎么办?

Mysql8忘记密码/重置密码UBUNTU下Mysql8忘记密码/重置密码步骤如下:先说下大概步骤:修改配置文件,使得用空密码可以进入mysql。然后置当前root用户为空密码。再次修改配置文件,不能...

MySQL忘记密码怎么办?Windows环境下MySQL密码重置图文教程

有不少小白在使用Windows进行搭建主机的时候,安装了一些环境后,其中有MySQL设置后,然后不少马大哈忘记了MySQL的密码,导致在一些程序安装及配置的时候无法进行。这个时候怎么办呢?重置密码呗?...

10种常见的MySQL错误,你可中招?_mysql常见错误提示及解决方法

【51CTO.com快译】如果未能对MySQL8进行恰当的配置,您非但可能遇到无法顺利访问、或调用MySQL的窘境,而且还可能给真实的应用生产环境带来巨大的影响。本文列举了十种MySQL...

Mysql解压版安装过程_mysql解压版安装步骤

Mysql是目前软件开发中使用最多的关系型数据库,具体安装步骤如下:第一步:Mysql官网下载最新版(mysql解压版(mysql-5.7.17-winx64)),Mysql官方下载地址为:https...

MySQL Root密码重置指南:Windows新手友好教程

如果你忘记了MySQLroot密码,请按照以下简单步骤进行重置。你需要准备的工具:已安装的MySQL以管理员身份访问命令提示符一点复制粘贴的能力分步操作指南1.创建密码重置文件以管理员...

安卓手机基于python3搜索引擎_python调用安卓so库

环境:安卓手机手机品牌:vivox9s4G运行内存手机软件:utermux环境安装:1.java环境的安装2.redis环境的安装aptinstallredis3.elasticsearch环...

Python 包管理 3 - poetry_python community包

Poetry是一款现代化的Python依赖管理和打包工具。它通过一个pyproject.toml文件来统一管理你的项目依赖、配置和元数据,并用一个poetry.lock文件来锁定所有依赖的精...

Python web在线服务生产环境真实部署方案,可直接用

各位志同道合的朋友大家好,我是一个一直在一线互联网踩坑十余年的编码爱好者,现在将我们的各种经验以及架构实战分享出来,如果大家喜欢,就关注我,一起将技术学深学透,我会每一篇分享结束都会预告下一专题最近经...

官方玩梗:Python 3.14(πthon)稳定版发布,正式支持自由线程

IT之家10月7日消息,当地时间10月7日,Python软件基金会宣布Python3.14.0正式发布,也就是用户期待已久的圆周率(约3.14)版本,再加上谐音梗可戏称为π...

第一篇:如何使用 uv 创建 Python 虚拟环境

想象一下,你有一个使用Python3.10的后端应用程序,系统全局安装了a2.1、b2.2和c2.3这些包。一切运行正常,直到你开始一个新项目,它也使用Python3.10,但需要...

我用 Python 写了个自动整理下载目录的工具

经常用电脑的一定会遇到这种情况:每天我们都在从浏览器、微信、钉钉里下各种文件,什么截图、合同、安装包、临时文档,全都堆在下载文件夹里。起初还想着“过两天再整理”,结果一放就是好几年。结果某天想找一个发...