【发布时间】:2020-05-02 05:55:19
【问题描述】:
假设我想创建一个新模块来为 MySQL 提供加密/解密。在我的模块中,我可能只是有这样的东西:
import mysqlib
import cryptolib
class SqlEncryption:
def encrypt(foo):
cryptolib.encrypt(foo)
def decrypt(bar)
cryptolib.decrypt(bar)
但我当然可以从加密和/或 sql 库继承:
class SqliteEncryption(mysqlib, cryptolib):
当然使用super 和一切。我通常继承,但这是我第一次想知道我是否应该从 sql 库、加密库或两者继承。由于我实际上不需要访问这两个模块中尚未在其 API 中公开的任何内容,因此应该如何决定或者这无关紧要?
【问题讨论】:
-
从模块继承绝对没有意义。我认为您误解了模块和/或继承的工作原理。
-
决定从哪个模块继承就像决定喝什么口味的汤。
标签: python python-3.x class inheritance