在循环或if语句中实例化类是否在编程上是正确的?

时间:2013-04-27 15:11:52

标签: python oop class

基于以下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()

2 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:2)

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

通常,使用循环来实例化对象是个好主意,特别是如果它们要存储在数组中。

此外,不要担心OOP或优化,关注意图和要求,并且从你在帖子中所说的,很难说你为什么担心这个。

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