Python-__name__ == ‘__main__‘
明确指定哪些代码是程序的启动入口。
·
if __name__ == '__main__': 是 Python 中一个非常重要且常用的结构,它用于控制代码的执行方式。
简单理解
你可以把它理解为:“如果这个文件是被直接运行的,而不是被导入的,那么就执行下面的代码。”
具体作用
1. 直接运行时的行为
当您直接运行这个 Python 文件时(比如在 PyCharm 中点运行按钮,或命令行输入 python pachong.py),__name__ 的值会被设置为 '__main__',所以 if 条件成立,下面的代码会被执行。
# pachong.py
def fyTest():
print("翻译函数")
if __name__ == '__main__':
print("这个文件被直接运行了")
fyTest() # 这行代码会执行
输出:
这个文件被直接运行了
翻译函数
2. 被导入时的行为
当这个文件被其他文件导入时(import pachong),__name__ 的值是模块名(即 'pachong'),不是 '__main__',所以 if 条件下的代码不会执行。
# other.py
import pachong # 只会导入 fyTest 函数,不会执行 if 条件下的代码
pachong.fyTest() # 可以正常调用函数
为什么需要这个?
1. 测试代码
你可以在 if __name__ == '__main__': 下面写测试代码,这样:
- 直接运行文件时:执行测试
- 被导入时:不执行测试,避免干扰
def add(a, b):
return a + b
# 测试代码只有在直接运行时才执行
if __name__ == '__main__':
print("测试加法函数:")
print(add(2, 3)) # 输出 5
print(add(10, 20)) # 输出 30
2. 避免意外执行
防止导入时意外执行一些不应该执行的代码。
3. 定义程序入口
明确指定哪些代码是程序的启动入口。
实际应用示例
在你的爬虫代码中:
import requests
def fyTest():
see = input("请输入: ")
url = 'https://aaaa/suv'
dataP = {'kw': see}
# ... 其他代码
return result
def another_function():
# 其他可能的功能
pass
# 只有直接运行这个文件时,才执行翻译功能
if __name__ == '__main__':
# 这里是程序的入口点
print("=== 百度翻译工具 ===")
result = fyTest()
print(result)
类比理解
你可以把它类比为:
- 直接运行:像是自己在家做饭吃(执行所有代码)
- 被导入:像是去餐厅点菜(只使用做好的菜品,不看制作过程)
最佳实践
建议在每个 Python 文件的最后都加上这个结构,即使现在看起来不需要。这样:
- 代码更清晰
- 便于测试
- 避免意外的副作用
- 方便以后的功能扩展
所以你的代码应该保持这样:
# 你的函数定义...
if __name__ == '__main__':
# 直接运行时要执行的代码
fyTest()
更多推荐


所有评论(0)