python - 在初始化类时提供模块作为参数是一种不好的做法(反模式)吗?
问题描述
我已经实现了一个BaseScanner
inside common/base/scanner.py
,它是Scanner
inside stash/scanner.py
、jira/scanner.py 等的子类。
现在,问题是BaseScanner
需要访问 eg 中的 ORM 模型stash/db/models.py
,具体取决于它的子类位置(在stash
、jira
等):
# common package
common/base/scanner.py
# stash package
stash/scanner.py
stash/db/models.py
# jira package
jira/scanner.py
jira/db/models.py
...
在实例化它时提供一个模块作为一个类的参数是否是一种反模式,就像我在这里做的那样main.py
?
import stash, jira
...
if args.command == 'stash':
import stash.db.models as models
scanner = jira.Scanner(args, models, ...)
scanner.run()
然后从内部访问不同的ORM模型BaseScanner
,比如self.models.Scan
,self.models.Match
等等?
如果它是一种反模式,那么另一种解决方案是什么?
解决方案
推荐阅读
- c++ - 我们如何访问如下输出?(数字-星号)
- python - Pandas 如何在分组后选择前 2 个值?
- reactjs - 如何使用 Framework7-React 在 JS 代码中捕获返回按钮事件?
- c# - 在 WPF 应用程序中实现基窗口类时出现 System.ArgumentNullException
- sql-server - 使用描述更新活动列
- python - 如何在没有 IndexError 的情况下访问特定索引处的 QuerySet 元素?
- swift - 以编程方式在表格视图单元格的中心设置一个按钮
- quarkus - 其他 JDBC 数据库
- java - 为什么 long 2500000000 溢出?
- javascript - 引用和替换包含循环的子模式