【问题标题】:Python method that can be called on a list of objects可以在对象列表上调用的 Python 方法
【发布时间】:2017-06-07 20:36:32
【问题描述】:

当在python中对对象调用方法时:

obj.func()

然后python将obj作为第一个参数传递给func()。我想做类似的事情:

[obj1, obj2].func() 

并将其处理为:

[obj1.func(), obj.func()]

有没有办法在python中定义这种方法?

【问题讨论】:

  • map() 我猜可能对你有帮助
  • [x.func() for x in [obj1, obj2]]

标签: python oop syntax


【解决方案1】:

如果您使用列表推导式,您基本上会得到您需要的:

[obj.func() for obj in [obj1, obj2]]

这是标准语法,对于其他 Python 程序员来说很容易理解。

【讨论】:

    【解决方案2】:

    完全按照您的要求做的唯一方法是子类化python内置类list

    This 应该会有所帮助。

    PS:虽然这样做是一件非常糟糕的事情。

    【讨论】:

      猜你喜欢
      • 2019-01-02
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 2021-03-09
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      相关资源
      最近更新 更多