我有一组相当简单的功能,我有多个实现,例如,一个可以由redis、mongodb或postgresql支持的数据存储。我应该如何构造/编写代码,以便希望使用这些实现之一的代码只需要该实现的依赖项,例如,它们不需要

psycopg2

如果使用的是redis后端,则安装。

这里有一个例子。假设以下模块,

example.py

.

class RedisExample(object):

try:

import redis

except ImportError:

print("You need to install redis-py.")

def __init__(self):

super(RedisExample, self).__init__()

class UnsatisfiedExample(object):

try:

import flibbertigibbet

except ImportError:

print("You need to install flibbertigibbet-py")

def __init__(self):

super(UnsatisfiedExample, self).__init__()

以下是我的python shell体验:

>>> import example

You need to install flibbertigibbet-py

交替地:

>>> from example import RedisExample

You need to install flibbertigibbet-py

我真的希望在尝试实例化

UnsatisfiedExample

. 有什么共同的方法来解决这个问题吗?我考虑过

example

一个包,每个后端都有自己的模块并使用一个工厂函数,但我想确保我没有遗漏更好的东西。

谢谢。

python中惩罚的代码_如何只为在python中使用的实现支付依赖惩罚?相关推荐

  1. python蓝牙编程代码_以编程方式通过python将蓝牙设备绑定到rfcomm

    我用python编写了一个脚本,用于M5Stack Stick C(如raduino)与树莓派之间的串行通信.一切正常.我可以将树莓派中的" X"," Y"或& ...

  2. python爬小说代码_中文编程,用python编写小说网站爬虫

    原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...

  3. python动态执行代码_第6.6节 Python动态执行小结

    一.    Python动态执行支持通过输入数据流或文件传入Python源代码串,进行编译后执行,可以通过这种方式扩展Python程序的功能: 二.    动态执行方法可能导致恶意攻击,因此使用时需要 ...

  4. python输出等腰三角形代码_酷呆了!Python开发web应用的一些中级技巧

    上一篇文章,介绍了如何用python和flask来开发web应用,是不是觉得用python做web应用很简单? (1)URL如何传递参数? (2)网页如何重定向? 阅读前,还是希望大家能告诉我,关于您 ...

  5. python高分书籍推荐_如果只推荐一本 Python 书,我要 Pick 它!

    今年二月初,我偶然看到了一条推特: <流畅的Python>一书的作者发布了一条激动人心的消息:他正在写作第二版! 如果要票选最佳的 Python 进阶类书目,这本书肯定会是得票率最高的书籍 ...

  6. python新年有趣代码_搞几款由“Python”语言编写的“有趣、恶搞、好玩”的程序代码!...

    下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 为提高大家对"Python"编程语言的学习兴趣,今天给大家分享几款有趣的Python程序代 ...

  7. python画熊猫代码_超清字符画——Python代码

    字符画视频如下,可以先预览一下效果(建议进入BILIBILI全屏观看):[樱花绽放]代码敲出武汉加油(全屏观看)期待战疫成功,武大赏樱_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bi ...

  8. python数据预测代码_手把手教你用Python玩转时序数据,从采样、预测到聚类丨代码...

    原标题:手把手教你用Python玩转时序数据,从采样.预测到聚类丨代码 原作 Arnaud Zinflou 郭一璞 编译 时序数据,也就是时间序列的数据. 像股票价格.每日天气.体重变化这一类,都是时 ...

  9. python大鱼吃小鱼程序代码_最近跟导师学Python,熬夜弄了两个晚上写出来个大鱼吃小鱼游戏!...

    在之前学习过pygame的基本知识了,现在该做个小游戏实战一下检测一下自己的所学.小伙伴们需要Python书籍.视频资料,游戏和游戏源码获取可以加群707548179就可以领取 今天用Python来做 ...

最新文章

  1. 图像放大算法一:最近邻法(Nearest Interpolation)
  2. 常见Shell命令用法总结
  3. Ubuntu14.04 + Text-Detection-with-FRCN(CPU)
  4. 2-02字符编码的演化
  5. C#中lock死锁实例教程
  6. 无人机飞控开发平台培训理论课程——MSP430最小系统
  7. Redis基本使用及百亿数据量中的使用技巧分享
  8. HDU-1251 统计难题 map写法
  9. pandas用众数填充缺失值_【机器学习】scikit-learn中的数据预处理小结(归一化、缺失值填充、离散特征编码、连续值分箱)...
  10. [Java] 蓝桥杯ALGO-58 算法训练 字串逆序
  11. 基于matlab 自适应滤波,基于Matlab的自适应滤波器的设计及仿真
  12. 微信小程序tab切换,(scroll-view + swiper)可滑动切换,导航栏跟随滚动实现
  13. java解压和压缩cab包 附jar
  14. 接入支付宝支付接口,以及SDK用法,Thinkphp6。
  15. 《土力学与地基基础(二)》在线平时作业3
  16. 财报解读:硬件支撑思科增长,云平台何时能突围?
  17. Xiuno 开发手册正式发布。
  18. c 语言让电脑自动关机,C语言编写简单的定时关机程序
  19. 快速读论文----CKA----Similarity of Neural Network Representations Revisited
  20. 视频监控存储所需容量大小计算

热门文章

  1. SQLServer create schema
  2. 服务器高并发应对方案
  3. 杨振宁惹谁了?(zz)
  4. UVA10227 POJ2419 ZOJ1900 Forests【并查集+set】
  5. Java 技术体系(JDK 与 JRE 的关系)、POJO 与 JavaBeans
  6. 中英文对照 —— 生物学基本概念
  7. a = b(将 b 赋值给 a 的另类实现)
  8. 矩阵分解——三角分解(Cholesky 分解)
  9. 数论及Python实践
  10. fire.php,php代码调试利器firephp安装与使用方法分析