我正在尝试在Handler集合中获得特定自定义类型MemoryListHandler的单个logger.handlers

对于.NET,我将仅使用以下LINQ扩展名,该扩展名过滤元素并仅返回MemoryListHandler类型的元素:

logger.handlers.OfType<MemoryListHandler>().SingleOrDefault()


Python中最优雅的等效词是什么?

我目前(不是很整齐)的尝试是:

next((handler for handler in logger.handlers if handler is MemoryListHandler), None)

最佳答案

您可以尝试index方法。

try:
    lh = logger.handlers
    x = lh[lh.index(MemoryListHandler)]
except ValueError:
    x = some_default_value

10-06 15:43