python - 在 Python 中对某些操作进行分组的类

标签 python linux class configuration

我正在为自己的 Linux 发行版编写配置程序。配置分为几个部分:general、networking、session 等 - 将相似的选项分组。例如。在常规部分有计算机名称、描述、工作组、语言选项。

我认为每个部分都应该由类来呈现,每个选项都应该有相应的属性(getter 和 setter)。

此外,如果有测试给定选项是否启用的功能(即系统是否满足此选项的要求),那么对于泛化来说会很好,即:

class General(object):

     @property
     def name(self):
         return self.get_computer_name()

     @name.setter
     def name(self, name):
         self.set_computer_name(name)

     def is_option_enabled(self, option):
         return True_or_False

此外,我还需要这些选项(以及部分)与相应的翻译名称和描述(使用 gettext)链接在一起。

我知道在类中硬编码表示层不是个好主意... 我需要诸如设计模式之类的东西,以及如何实现它的总体思路/模板,以便它是高质量的、易于管理和扩展的。

我将为这些类(文本、图形用户界面、网络)创建多个前端,因此我不想每次都重复相同的代码。

我很努力地思考,但不幸的是我不知道该怎么做或者有一些疑问......

谢谢你:)

最佳答案

我会说您的项目看起来雄心勃勃。

并且对每个部分使用一个类对我来说似乎不是一个好主意,因为它基本上意味着添加、删除或修改部分将需要更改代码,它不是动态的,并且意味着发布新版本与前一个不兼容。

如果每个部分都以相同的方式处理会更好。

对于核心,我认为您需要:

  1. 带有可接受部分和选项声明的 protected 文件
  2. 有权访问此类文件的配置持有者
  3. 用于配置文件的加载器:
    • 读取/解析您的配置文件。
    • 构建您的配置容器。
  4. 命令 可以访问您的配置持有者:
    • 实现此访问的抽象 BaseCommand
    • 每个实际命令的子类:GetAddRemove

然后每个前端将只是这些命令的接口(interface)。

关于python - 在 Python 中对某些操作进行分组的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8999943/

相关文章:

python - xrange 作为迭代器和分块

python - 在 SymPy 中打印四舍五入到 3 位小数的输出

linux - 我如何在 shell 中使用函数编写这个

java - 似乎找不到正确的 if 语句或 return

C++ 类变量返回乱码

PHP fatal error : Constant expression contains invalid operations

python - 'UserCreationForm' 对象没有属性 'get_username' django 1.8

ruby-on-rails - 安装特定的 Ruby 版本

linux - bash 无法识别两位数

python - 如何将日期时间列四舍五入到最近的一刻钟