【问题标题】:list + map with Python don't return lambda function [closed]带有Python的列表+地图不返回lambda函数[关闭]
【发布时间】:2019-05-07 11:55:46
【问题描述】:

我用 python 测试int Mediator pattern 但是当我用 lambda 测试方法时,我不知道为什么返回 None

def requestPositions(self):
        return list(map(lambda airplane: airplane.position, self.airplanes))

这都是模式。

我想念返回 onrequestPositions 方法

class TrafficTower:
    def __init__(self):
        self.airplanes = []

    def requestPositions(self):
        return list(map(lambda airplane: airplane.position, self.airplanes))

class Airplane:
    def __init__(self, position, trafficTower):
        self.position = position
        self.trafficTower = trafficTower
        self.trafficTower.airplanes.append(self)

    def requestPositions(self):
        return self.trafficTower.requestPositions()


def main():
    airplane = Airplane(10, TrafficTower())
    #FIX why don't return list
    print(airplane.requestPositions())

if __name__ == "__main__":
    main()

【问题讨论】:

  • FWIW,Airplane 可能无法控制将自己插入TrafficTower
  • 标记为 [python-2.7] 但使用 python 3 的打印功能?
  • 执行相同的 ``` $ python2.7 Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) [GCC 7.3.0] on linux2 键入“help”、“copyright” 、“学分”或“许可”以获取更多信息。 >>> 打印([2])[2] >>> 打印 [2] [2] >>>

标签: python python-2.7 design-patterns


【解决方案1】:
def requestPositions(self):
    self.trafficTower.requestPositions()

这里缺少return

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2017-07-22
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多