2024-04-20 00:10:04 发布
网友
我通常这样做:
[worker.do_work() for worker in workers]
这样做的好处是可读性很强,并且包含在一行中,但是创建一个我不需要的对象(列表)的问题,这意味着垃圾回收会被不必要地触发。你知道吗
显而易见的选择是:
for worker in workers: worker.do_work()
也相当可读,但使用两行。你知道吗
有没有一个单一的方法来实现相同的结果,而不创建不必要的对象?你知道吗
python中的“GC”与java有很大的不同。ref count减量比mark和sweep便宜得多。对其进行基准测试,然后决定是否过于强调小成本。你知道吗
要使它成为一个单行程序,只需定义一个helper函数,然后就可以用一行代码来调用它。如果方便的话,将函数放入导入的库中。你知道吗
当然有。你知道吗
def doLotsOfWork(wks): for w in wks: w.do_work()
现在,你的“一行”:
doLotsOfWork(workers)
简而言之,除了使用for循环之外,没有“更短”(或更好的方法)。我建议你不要使用列表理解,因为它使用副作用-这是代码气味。你知道吗
for
python中的“GC”与java有很大的不同。ref count减量比mark和sweep便宜得多。对其进行基准测试,然后决定是否过于强调小成本。你知道吗
要使它成为一个单行程序,只需定义一个helper函数,然后就可以用一行代码来调用它。如果方便的话,将函数放入导入的库中。你知道吗
当然有。你知道吗
现在,你的“一行”:
简而言之,除了使用
for
循环之外,没有“更短”(或更好的方法)。我建议你不要使用列表理解,因为它使用副作用-这是代码气味。你知道吗相关问题 更多 >
编程相关推荐