在clean OOP Python sty中重写过程脚本

2024-06-11 13:11:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我成功地编写了一个Powershell脚本:

  • 查询AD获取计算机列表
  • 通过WMI查询每台计算机以获取软硬件信息
  • 将收集到的数据插入MySQL数据库。在

这个脚本运行得很好,但我不喜欢它的实现方式。这是程序性的,而且有很多代码重复,每次我需要更改某些内容时都会造成混乱。在

现在,我想问你的是:在python中使用OOP实现它的最干净的方法是什么?我也有过类似的想法(伪代码):

Class ADquery
    function get_computers( UO ): return a list of computers in the specified UO

Class Computer
    constructor( computername )
    function query(): connect to the computer and pull the info through WMI
    function print(): print the collected info to the console (debug)
    property RAM
    property CPU
    ...

问题:

  1. 为了将收集到的数据保存到数据库中,我是否必须创建另一个对象(例如数据库)并将计算机对象传递给他,还是向计算机类添加成员函数(例如save_db())?

  2. 如果我选择第二个选项,当我处理多个对象时,这不会导致大量的MySQL连接?

非常感谢,很抱歉我的英语不好


Tags: theto数据对象代码info脚本数据库
2条回答

那个建筑在我看来很合理。在

  1. 你也可以这样做,我不确定它是否真的与这样的小应用程序有很大的不同。

  2. 潜在的。根据它的实现方式,你可以得到很多连接。如果你做了一个合理数量的插入,我会把它们放在一个列表中,然后一次全部插入,如果你的代码可以的话。

你也可以从因特网或你当地的书店里买一本面向对象的设计书,例如Rumbaugh et al.。我还建议阅读设计模式,例如Gamma et. al.的书。我现在正在做这件事,看看如何解决一个特定问题的标准模式来塑造你关于面向对象编程的思维过程,这真的很有帮助。在

ps你的英语一点也不差(注意我也不是母语;)。在

相关问题 更多 >