在Python中,如何从生成器表达式中调用的函数引用返回值?

简化后,我想做这样的事情:

({'publication': obj.pub_name, 'views': obj.views, } for obj = analyze_publication(p) for p in Publication.objects.all())

当然,那是行不通的.

现在,我正在使用:

({'publication': obj.pub_name, 'views': obj.views, } for obj in (analyze_publication(p) for p in Publication.objects.all()))

我不知道第二个代码段是如何完成的,或者是否还有其他语法,或者它效率不高等等.我距离Python只有2周的时间.

解决方法:

您有不平衡的paren,但除此之外,嵌套生成器表达式应该没有任何(功能性)问题.与列表理解一样,它们在嵌套时很快变得笨拙.为了便于阅读,我建议将其移至命名生成器.

如果您对性能感到好奇,请使用disassemblerprofilers比较不同的方法.

上一篇:为什么MongoDB Java驱动程序/ Morphia会在属性之前添加两次?


下一篇:Java中更好的等待语法