【问题标题】:Python importing and code structurePython导入和代码结构
【发布时间】:2017-05-12 20:26:34
【问题描述】:

我有两个关于我的 Python 代码的问题要问,如果是新手问题,请原谅,我对某些编程领域还比较陌生。

好的,所以我正在为某个 Web 应用程序编写我自己的库,并且在观看了关于 OOP 过度使用的精彩演示(不幸的是这个名字让我忘记了)之后,我重构了我所有的代码,删除了我认为未使用的类的地方,并使我的代码更容易看,更容易维护。我的主要问题是代码结构,我目前有一个名为 Client 的文件,其中包含一个类,但在意识到这可能会随着时间变得巨大之后,我编写了一个名为 BaseRequests 的单独类,它可能不必要地小。我的第一个问题是,有很多较小的小班会更好吗? BaseRequests 以及 Client 或创建一个相当大的类,例如客户。

我的第二个问题更不具体,但仍然基于相同的结构区域,所以我希望我的库能够按如下方式使用:

import Module
client = Module.Client()

但是,如果我有多个不同的类(例如 BaseRequests 类),我不希望普通用户必须专门声明为对象,那将如何工作。我突然意识到继承可能是一种选择,我这样想对吗?如果是这样,一个类是否可以从多个其他类继承,这是好的做法吗?

【问题讨论】:

  • 客户端使用BaseRequests吗?
  • 是的,BaseRequests 中的一些方法可以。

标签: python python-3.x oop inheritance structure


【解决方案1】:

您可以在 Client 类中实例化 BaseRequests 并在那里使用它。 WRT你的第一个问题,查找编程范式“关注点分离”。基本上一个类、接口、工厂或任何其他结构应该只关心做一件事。因此,客户端类应该只关心充当客户端,而不是做其他事情,比如说...将日志消息打印到文件中。你会为此创建一个单独的记录器类(使用 python 内置的)

【讨论】:

  • 谢谢先生的回答,非常有帮助。由于它回答了我的问题而被接受。
  • np :D 很高兴为您提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
相关资源
最近更新 更多