C#就像python中的扩展函数一样?

时间:2012-05-07 09:37:49

标签: c# python

最后写了很多:

lines = [l.strip() for l in lines]

是否有可读的Pythonista方法,如:lines.stripped()返回剥离的行? (在C#中你可以在字符串列表中添加'扩展方法'。)

2 个答案:

答案 0 :(得分:5)

不,您无法对list类型进行monkeypatch。您可以使用这样的方法创建list的子类,但这可能是一个糟糕的主意。

捕获重复代码的Pythonic方法是编写一个函数:

def stripped(strings):
    return [s.strip() for s in strings]

答案 1 :(得分:2)

https://github.com/clarete/forbiddenfruit

您是否认为可读性Pythonista是个人选择。但这确实有效。

我确实希望Python具有类似CSharp,Kotlin,Scala和Ruby的“扩展方法”。在那之前,禁果或其使用的技术(可以大大简化)是我所知道的唯一方法。