最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python中规范定义命名空间

来源:动视网 责编:小采 时间:2020-11-27 14:26:04
文档

Python中规范定义命名空间

Python中规范定义命名空间:API的设计是一个艺术活。往往需要其简单、易懂、整洁、不累赘。很多时候,我们在底层封装一个方法给高层用,而其它的方法只是为了辅助这个方法的。也就是说我们只需要暴露这个方法就行,不用关心这个方法是怎么实现的,不用关心其它辅助方法的存在。在Pyth
推荐度:
导读Python中规范定义命名空间:API的设计是一个艺术活。往往需要其简单、易懂、整洁、不累赘。很多时候,我们在底层封装一个方法给高层用,而其它的方法只是为了辅助这个方法的。也就是说我们只需要暴露这个方法就行,不用关心这个方法是怎么实现的,不用关心其它辅助方法的存在。在Pyth


API的设计是一个艺术活。往往需要其简单、易懂、整洁、不累赘。

很多时候,我们在底层封装一个方法给高层用,而其它的方法只是为了辅助这个方法的。
也就是说我们只需要暴露这个方法就行,不用关心这个方法是怎么实现的,不用关心其它辅助方法的存在。
在Python中,有几种策略来保持命名空间的整洁。

1.变量命名用下划线_开头
下划线_开头的变量在其它模块from xxx import *的时候不被import。
如果你看decimal的源码,就会发现多次把import 的模块弄成下划线_开头的别名。
http://hg.python.org/cpython/file/2.7/Lib/decimal.py比如

import copy as _copy
import math as _math
import numbers as _numbers

这不是蛋疼,是为了不污染命名空间

2.定义__all__
python的魔术方法实在是灵活。
假设我模块中有3个方法a(),b(),c()
我只是要暴露a而已,不需要暴露b和c。
这时__all__=[a]
在其它模块from xxxmodule import *的时候就只import了a了。
而且在开发者阅读源码的时候,看到了__all__,一下子就知道要暴露的是哪些方法,而不是一堆代码无从下手。

3.在使用了这个变量后删掉
通过del xxx删掉。
这样在dir(xxxmodule)的时候就减少了dir出来满屏的变量了。
同样在decimal的源码,可以看到使用了正则表达式模块re之后,用del re删掉了。
还有一种方法就是把import语句放在函数内,将其在局部作用域中。感觉这种方法不pythonic,就不推荐了。

更多Python中规范定义命名空间相关文章请关注PHP中文网!

文档

Python中规范定义命名空间

Python中规范定义命名空间:API的设计是一个艺术活。往往需要其简单、易懂、整洁、不累赘。很多时候,我们在底层封装一个方法给高层用,而其它的方法只是为了辅助这个方法的。也就是说我们只需要暴露这个方法就行,不用关心这个方法是怎么实现的,不用关心其它辅助方法的存在。在Pyth
推荐度:
标签: 空间 定义 规范
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top