3

基于以下 Python 代码段,我想问一下在循环或 if 语句中创建类的实例是否是一种好策略。我是 OOP 概念的新手,虽然我在很大程度上理解它,但我不知道这样的事情是否在编程上被接受和正确。

一些程序员同事建议我,我永远不应该在循环中实例化一个类。这样的事情会如何影响我的程序的效率和内存?你有什么意见?

 station = ['one','two'...]
 for station in stations_names:
    f = open('respond.txt','r')
    ## Instantiate class: ClassXmlString
    xmlStr = ClassXML.XML(f,station) 
    stations_arr =  xmlStr.xmlToString()
4

2 回答 2

7

在循环中创建对象绝对没问题。

根据您运行的平台的速度以及您正在编写的实际程序,这可能需要注意,因为对象的实例化可能是一项“代价高昂”的操作。但是,“成本”实际上非常小,为此开始更改代码将是“过早优化”的经典示例。

以对您有意义的方式编写代码。项目完成后,如果它的运行速度比您想要的慢,您可以分析并找出导致它运行缓慢的原因。通常,这是 I/O(数据库调用、对硬盘驱动器或网络的读/写等)而不是对象实例化。

于 2013-04-27T15:18:31.060 回答
2

使用循环来简化重复性任务。

通常,使用循环来实例化对象是个好主意,尤其是当它们要存储在数组中时。

此外,不要担心 OOP 或优化,专注于意图和需求,从您在帖子中所说的内容来看,很难说出您为什么担心这一点。

总的来说,是的,如果你需要一个类的许多实例,你应该使用循环并将它们存储在一个数组中,但是请记住,OOP 是一种手段,而不是目标,如果它看起来不对,你需要检查它是否满足要求,因为大多数 OOP 概念都被初学者严重滥用(通常为了做 OOP 而做 OOP 会导致各种问题)。

于 2013-04-27T15:22:43.823 回答