Python 运行,带你找入口,快速读懂程序
off999 2025-05-05 18:08 25 浏览 0 评论
有 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 包,并希望为用户提供一个命令行工具,可以使用 setuptools 的 entry_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() 函数结合的方式。
爱学习的小伙伴,关注不迷路哟~
相关推荐
- ntfs是固态硬盘吗(ntfs对固态硬盘危害)
-
NTFS是一种磁盘格式,它不是硬件,所以nfs不是固态硬盘,也不是机械硬盘。现在最常见的磁盘格式就是ntfs,在之前还有fat跟fat32格式,此外U盘还有exfat格式,另外其他的非windows操...
- 不小心抹掉了mac内置的磁盘(不小心抹掉了mac内置的磁盘怎么恢复)
-
因为你进入的是恢复磁盘,恢复磁盘是基于mac的。自己不能抹掉自己吧。所以抹不掉。如果你要彻底抹掉的话,开机按option+command+r,wifi下载网络恢复磁盘,就可以抹掉了。您可以按住COMM...
-
- 开机界面切换用户不见了win7
-
开始--运行(或者WIN+R),键入“msconfig”,单击“确定”或回车,运行“系统配置实用程序”。在“启动”里把“Ctfmon.exe”选中,单击“确定”开始--运行,输入“ctfmon.exe”回车,再输入“msconfig”启动,...
-
2025-12-13 00:03 off999
- win7旗舰版进入安全模式(win7旗舰版进入安全模式无法启动)
-
win7安全模式怎么进? 一、开机时按F8键 当你重启或开机时,在进入Windows系统启动画面之前按下F8键,会出现系统多操作启动菜单,有三个版本的安全模式可以选择,回车就直接进入安全模式。 ...
- ps手机版下载中文免费版2025
-
ps2023对电脑要求高。ps2022版本对电脑配置要求是:1、内存要求在一32G和64G之间。2、硬盘要求选择7200转机械硬盘,4k以上分辨,就选择SSD固态硬盘。3、CPU要求睿频在4.1GHZ...
- 苹果电脑如何下载windows系统
-
下载后安装BootCamp,之后在[应用程序]的[实用程序]中找到BootCamp助理,下面就可以开始安装Windows前的准备工作了。 第一步是要用BootCamp助理刻录一张驱动程序的CD...
- efi系统分区什么意思(efi系统分区的作用)
-
ud空间是指存放PE启动文件的分区;efi空间是指存放UEFI启动文件的分区。系统U盘(PE启动盘)的制作方法,一共分为三种。三分区法是其中的一种,三分区法就是一个U盘被分成了三个区,两边的分区是隐藏...
- 无需u盘重装系统(无需u盘安装系统)
-
可以通过以下步骤在不使用U盘的情况下重装Win7系统:首先需要备份您的电脑中的重要数据,以免在系统重装时丢失。进入系统的“控制面板”,找到“系统与安全”选项并单击进入。在“系统与安全”页面中,找到“备...
- 改无线网密码的网址(改无线网密码的网站)
-
移动宽带无线网改密码,可以在移动网上营业厅办理,但更简单的办法是通过短信办理(详见如下第2条): 移动无线宽带短信操作方式: 1)开通业务:编写短信“KTWLAN”发送至10086。 注:短...
- c盘满了却不敢删(c盘满了清不掉)
-
1、运用磁盘清理软件清理C盘,大约可为C盘释放50M-800M空间。2、关闭休眠功能,在开始菜单的运行里输入powercfg-hoff指令,关闭休眠,此文件实际大小和物理内存是一样的,大约可以...
-
- 联想笔记本电脑怎么打开摄像头
-
联想笔记本怎么打开摄像头?1、点击电脑开始菜单栏,在弹出的窗口中点击【设置】。2、在”隐私和安全性“面板中点击【相机】选项。3、将【摄像头访问】右侧的开关打开。材料/工具:以联想Y460笔记本为例。操作步骤如下:1、在电脑的桌面,打开我...
-
2025-12-12 19:51 off999
- win732纯净版系统gho(win732纯净版下载)
-
一,win7x32gho指的是32位的Windows7操作系统,gho指的是ghost方式封装的镜像文件,一般这种都是盗版系统。二,如果自己需要安装64位系统就不要选这个,内存低于3GB可以安装win...
- pscs6激活账户(pscs6激活账户和序列号免费)
-
pscs6破解补丁是AdobePhotoShopCs6版本的破解激活补丁,使用后不会弹出购买窗口,实现完美破解,无任何限制破解版软件扩展功能好像不好用!要用需要的扩展功能可以在网上下载需要的插件...
- 键盘皮肤下载(键盘皮肤下载软件免费有音效)
-
1、vivo自带的输入法不能更换键盘皮肤;2、建议可以下载第三方输入法更换皮肤,比如:搜狗输入法等;3、下载第三方输入法之后需要在设置-更多设置-输入法中设置为第三方的输入法使用;4、然后在输入法界面...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
使用 python-fire 快速构建 CLI_如何搭建python项目架构
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
