python 模块命名空间_如何在python模块中执行导入而不污染其命名空间?
我正在开发一个用于处理一些科学数据的Python包。在其他模块和包中有多个经常使用的类和函数,包括numpy,我几乎需要在包的任何模块中定义的每个函数。
Pythonic的处理方式是什么?我已经考虑过多种变体,但每个都有自己的缺点。
>从外部模块导入Class1,Class2,function1,function2导入模块级别的类
然后可以从每个功能轻松访问导入的函数和类。另一方面,它们污染模块命名空间,使dir(package.module)和帮助(package.module)与导入的函数混淆
>从外部模块导入Class1,Class2,function1,function2导入功能级别的类
函数和类可以方便地访问,并且不会污染模块,但是在每个函数中从最多十个模块导入看起来很多重复的代码。
>使用import foreignmodule导入模块级别的模块
由于需要将模块名称添加到每个功能或类别调用中,所以不需要太多的污染。
>使用一些人工变通方法,例如对所有这些操作使用函数体,并仅返回要导出的对象…像这样
def _export():
from foreignmodule import Class1, Class2, function1, function2
def myfunc(x):
return function1(x, function2(x))
return myfunc
myfunc = _export()
del _export
这就解决了这两个问题,模块命名空间污染和功能的易用性,但它似乎根本不是Pythonic。
那么什么解决方案是最坚定的?还有另一个好的解决方案我忽略了吗?
python 模块命名空间_如何在python模块中执行导入而不污染其命名空间?相关推荐
- python 线性回归模型_如何在Python中建立和训练线性和逻辑回归ML模型
python 线性回归模型 Linear regression and logistic regression are two of the most popular machine learning ...
- python 概率分布函数_如何在Python中实现这五类强大的概率分布
匿名用户 1级 2016-04-25 回答 首页 所有文章 观点与动态 基础知识 系列教程 实践项目 工具与框架应用 工具资源 伯乐在线 > Python - 伯乐在线 > 所有文章 &g ...
- python 获取当前目录_如何在Python中获取当前的工作目录?
python 获取当前目录 To get the current working directory in Python, there is a library function getcwd() i ...
- python自增_如何在python语言实现自增和自减功能并显示结果
在python语言中,跟Java和JavaScript语言不一样,python中没有自增和自减功能,而Java和JavaScript中有.但是,python语言可以使用变量加1或减1替换.下面利用几个 ...
- linux python开发环境_如何在Linux系统中搭建Python编程环境
1 在大多数的Linux系统中,基本上都默认安装了Python,也就是说,在Linux的系统中基本上是不需要安装什么软件,就可以使用Python. 下面以ubuntu操作系统为例,看看如何在Linux ...
- python进程暂停_如何在Python中暂停多进程?
我希望用户能够在怎么开始的实现它?在 我的代码是:# -*- coding: utf-8 -*- from PySide import QtCore, QtGui from Ui_MainWindow ...
- python 拟合正态分布_如何在Python中拟合双高斯分布?
我试图使用Python获得数据(link)的双高斯分布.原始数据的格式为: 对于给定的数据,我想获得图中所示峰值的两个高斯分布.我用以下代码(source)进行了尝试:from sklearn imp ...
- python mqtt库_如何在 Python 中使用 MQTT
Python 是一种广泛使用的解释型.高级编程.通用型编程语言.Python 的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词).Python 让开发者能 ...
- python 字节流分段_如何在Python中编写简单代码,并且速度超越Spark?
全文共 3482字,预计学习时长 7分钟 如今,大家都在Python工具(pandas和Scikit-learn)的简洁性.Spark和Hadoop的可扩展性以及Kubernetes的操作就绪之间做选 ...
最新文章
- mysql 前30秒_mysql – 简单查询需要15-30秒
- [Embeding-3]综述:词嵌入以及与分布式语义模型的关联
- selenium 等待_Selenium等待:内隐,外显,流利和睡眠
- 【计算机网络复习 数据链路层】3.5.5 CSMA-CA协议
- django-创建项目-创建应用-注册应用-配置mysql连接pycharm-连接django-生成数据表
- 「代码随想录」精讲了18道力扣上贪心算法经典题目,总结了这些!
- Git 命令 clone、add、status、commit、push、init 使用介绍.
- SDPT3 4.0版——半正定二次线性规划的Matlab软件
- android 高德地图之poi搜索功能的实现
- 贝叶斯公式——假阳性问题
- shell遍历多个数组
- css鼠标拖拉卡顿_浅谈CSS3 动画卡顿解决方案
- 网页前端(HTML)
- python 自定义函数
- 基于USB2.0的视频图像处理芯片实现方案
- 互联网慢病管理-软件架构设计
- css实现点击内容切换div
- USACO-Section 3.2 Spinning Wheels(模拟)
- html显示转发次数,qq空间中说说被转发的次数不显示出来的原因 – 手机爱问
- PowerPmac上位机开发C#(一)_组件安装与环境配置