Python 创建模块笔记

                     

贡献者: addis

1. 区分脚本和模块

   有时候我们希望同一个 .py 文件既可以作为脚本直接执行也可以作为模块被导入,并且该文件可以根据这两种方式自动选择执行什么.这是可以用 __name__ 来判断:

代码 1:my_module.py
#!/usr/bin/python3
# 执行一些命令(无论作为脚本还是模块都会被运行)
# 被赋值的变量会作为模块的全局变量, 定义的函数会作为模板中的函数

print('欢迎使用 my_module.py')

def plus1(num):
    return num + 1

num = 3.5
num2 = plus1(num)


if __name__ == '__main__':
    # 脚本模式下运行的命令
    print('正在被作为脚本执行,  __name__ 的值为 __main__')
else:
    # 作为模块导入时运行的命令
    print('正在被作为模块导入, __name__ 的值为', __name__)
若运行 ./my_module.py 或者 python3 my_module.py 或者 python3 -m my_module,就会得到
欢迎使用 my_module.py
正在被作为脚本执行,  __name__ 的值为 __main__
若在同目录下进入 python3 运行 import my_modul,就会得到
欢迎使用 my_module.py
正在被作为模块导入, __name__ 的值为 my_module

   再来写另一个模块调用上面的模块

#!/usr/bin/python3
print('欢迎使用 my_module2.py')
if __name__ == '__main__':
    # 脚本模式下运行的命令
    print('正在被作为脚本执行,  __name__ 的值为 __main__')
else:
    # 作为模块导入时运行的命令
    print('正在被作为模块导入, __name__ 的值为', __name__)

import my_module


致读者: 小时百科一直以来坚持所有内容免费,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利