网站开发公司会计,百度推广还要求做网站,瑞安建设网站,百度云文件wordpress文章目录 一、自定义模块1.如何自定义模块并导入?2.__main__变量的功能3.注意事项 二、自定义包1.什么是Python的包?2.__init __.py文件的作用?3.__all__变量的作用?4.示例 三、自定义模块和自定义包的好处 一、自定义模块
1.如何自定义模块并导入?
在Python代码文件中正… 文章目录 一、自定义模块1.如何自定义模块并导入?2.__main__变量的功能3.注意事项 二、自定义包1.什么是Python的包?2.__init __.py文件的作用?3.__all__变量的作用?4.示例 三、自定义模块和自定义包的好处 一、自定义模块
1.如何自定义模块并导入?
在Python代码文件中正常写代码即可通过import、from关键字和导入Python内置模块一样导入即可使用。模块的详细使用可以见[Python基础二十一、模块的使用else的使用tip]。(https://blog.csdn.net/qq_35716085/article/details/135453562) 例如 formatJson.py
def formatJsonReturn(newLine, str, file):for line in file:if line.strip().startswith(str):dict line.strip().replace(,).replace(,,).replace( ,).split(:)[1]newLine.append(dict)return newLineopenJson.py
import formatJson
def openJson(uri):newLine []with open(uri,r) as file:formatJson.formatJsonReturn(newLine, title: ,file)print(newLine)return newLine
openJson(D:/test/demo/articles.json)openJson导入了formatJson模块
import formatJson或者
from formatJsonimport formatJsonReturn2.__main__变量的功能
if__main__“__main__ ”表示只有当程序是直接执行的才会进入if内部如果是被导入的则if无法进入 例如 formatJson.py
def formatJsonReturn(newLine, str, file):for line in file:if line.strip().startswith(str):dict line.strip().replace(,).replace(,,).replace( ,).split(:)[1]newLine.append(dict)return newLine
if __name__ __main__:newLine []file [test:111]formatJsonReturn(newLine, test, file)print(newLine)将formatJson.py增加if __name__ __main__如果直接运行formatJson.py可以输出
[111]但是当其他模块调用该模块时就不会走到if __name__ __main__ 当中即不会输出[‘111’]。
3.注意事项
printJson.py
def formatJsonReturn(str):print(str)formatJson.py同上不变下面给openJson.py引入formatJson.py和printJson.py的formatJsonReturn函数。
from formatJson import formatJsonReturn
from printJson import formatJsonReturn
def openJson(uri):newLine []with open(uri,r) as file:formatJsonReturn(newLine, title: ,file)print(newLine)formatJsonReturn(title: )return newLine
openJson(D:/jushu/demo/articles.json)猜猜会发生什么 报错了因为导入的函数名相同被后边导入的覆盖了后导入的参数只有1个而我写了三个入参~~~
不同模块同名的功能如果都被导入那么后导入的会覆盖先导入的__all__变量可以控制import*的时候哪些功能可以被导入
二、自定义包
1.什么是Python的包?
包就是一个文件夹里面可以存放许多Python的模块 (代码文件)通过包在逻辑上将一批模块归为一类方便使用。
2.__init __.py文件的作用?
创建包会默认自动创建的文件通过这个文件来表示一个文件夹是Python的包而非普通的文件夹。
3.__all__变量的作用?
同模块中学习到的是一个作用控制 import*能够导入的内容
4.示例
以下是一个示例演示如何创建一个简单的包及其 __init__.py 文件
my_package/__init__.pyformatJson.pyopenJson.py在 __init__.py 文件中你可以添加以下内容
# __init__.py# 可以在这里导入模块
from .openJson import openJson
from .formatJson import formatJsonReturn
from .formatJson import testJson
# 定义 __all__ 变量
__all__ [formatJsonReturn, openJson]这样在其他模块中导入my_package 包时即使是import *也只有 openJson和 formatJsonReturn会被导入。这提供了更细粒度的控制确保只有你想要导出的内容可供其他模块使用。
三、自定义模块和自定义包的好处 模块化和组织性: 自定义模块和包可以将相关的代码组织在一起使代码更易于管理和维护。通过将功能拆分为多个模块或包可以提高代码的可读性和可维护性。 代码复用: 自定义模块和包可以在不同的项目中重复使用。通过将通用功能封装为模块或包可以避免重复编写相同的代码提高开发效率。 命名空间隔离: 自定义模块和包提供了命名空间的隔离。通过将代码放入不同的模块或包中可以避免命名冲突并确保代码之间的相互独立性。 可扩展性: 自定义模块和包可以方便地进行扩展。通过添加新的模块或包可以向项目中添加新的功能或特性而无需修改现有代码。 代码共享和交流: 自定义模块和包可以与其他开发者共享和交流。通过将代码打包成模块或包可以方便地与他人分享自己的代码促进合作和知识共享。
总的来说自定义模块和包能够提高代码的组织性、可复用性、可维护性和扩展性同时也方便代码的共享和交流是Python开发中常用的工具和技术。