python接口设计中的__all__和del,,最近在实现pytho
python接口设计中的__all__和del,,最近在实现pytho
最近在实现python接口中遇到了一些小问题,解决后总结如下。
目的:在设计接口时,只暴露某个文件的特定方法。
例如:
t.py
import osimport sysdef a(): passdef b(): passdef c(): pass
假设我们要开发的插件名为Shona,如果我们在设计插件时,在__init__.py文件中进行如下操作:
from t import *
如上import后,调用时可见方法:
Shona.t.a()Shona.t.b()Shona.t.c()Shona.t.osShona.t.sys
如果我们只想暴露方法a和方法b,介绍两种方法如下:(实际应用中,看哪个方便哪个可以work用哪个,也可两者结合,实际上我自己用到的情况较为复杂,两者都有使用,在这里就不详细说了 Ψ( ̄(?) ̄)Ψ )
1. 在t.py中添加如下代码:
__all__ = [‘a‘, ‘b‘]# 写在文件头部或尾部即可,其他位置也可,注意是列表哦
这样做,是指定暴露哪些方法。
当然,我们更推荐如下import 方法:
from t import afrom t import b
然而,这些方式有时是不能完全满足需求的(这里各位在实践中便会晓得),可以使用下面那种较为暴力的方法。
2. 在__init__.py中添加如下代码
这个是观察tensorflow源码发现的,原来tensorflow也有这样子的问题:
del cdel osdel sys
这里就是说把不小心误引入的删掉,不暴露给用户。
以上就是本次小小的总结啦~ 祝大家开发愉快。
python接口设计中的__all__和del
相关内容
- python学习7,,一、使用while
- python习题--列表的遍历,,习题一:# 比较两个
- python 可视化,python可视化窗口编程,基本画图操作:i
- python基础 文件操作,python文件读取,文件操作1 1 #文
- python自动化基础(参数化),自动化python,一、创建加法
- Mathab和Python的numpy中的维度顺序,numpy是啥,本文比较M
- python3----练习......,,1 # 上行遍历2
- python-字符串,python字符串比较,字符串 表示方法:
- Python编程练习(一),,学习中,都是从书上找
- python 绘制五角星,python绘制五角星,codeimport
评论关闭