我刚刚意识到,对于我的程序中的特定模块,返回或不返回实例列表根本没有区别。使用固定种子,结果是相同的。
因此,我想知道:
包含 return 语句似乎是更好的编程实践。那是对的吗?
我主要担心的是性能。我很难计时,因为计算机中发生的其他事情似乎会影响结果。我得到了 4 分 3 秒,然后得到了 5 分钟,没有改变一个逗号。
请参阅下面的示例:
有一个从另一个模块调用的大型函数,并传递许多包含不同实例对象的列表:
def check_demographics(month, my_agents, families, firms, my_graveyard, year, mortality_men, mortality_women, fertility, state_id):
在该函数内我有以下函数:
def mortal(my_agents, my_graveyard, families, agent, firms):
my_agents.remove(agent)
my_graveyard.append(agent)
families[agent.get_family_id()].death_member(agent)
if families[agent.get_family_id()].num_members() == 0:
families[agent.get_family_id()].empty_house()
if agent.is_employed():
firms[agent.get_workplace()].obit(agent)
return my_agents, families, firms, my_graveyard
在上面的例子中,我发现退货是可选的。返回包含代理人、家庭等的列表没有什么区别。
所以,我知道这个例子是不可重现的,但问题与一般事实有关。
我假设该列表位于内存中的某个位置。
附注我不是计算机科学家,而是试图进行一些基于代理的建模的研究人员。谢谢!