调用函数时,它告诉我对象(列表)的位置,而不是列表本身?

2024-10-03 04:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

class Knapsack:
  def __init__(self, capacity, objects):
    self.capacity = capacity
    self.objects = objects

  def newHillclimber(self):
    return lambda x: [randint(0,1) for x in range(1,11)]

k = Knapsack(20, 10)  
print(k.newHillclimber)

为什么它不打印我在newHillclimber返回的列表?这意味着什么:0x7f80407f8e10处的main.Knapsack对象>&燃气轮机


Tags: lambdainselfforreturnobjectsinitdef
1条回答
网友
1楼 · 发布于 2024-10-03 04:25:40

在newHillclimber中,您没有返回列表,而是返回一个生成列表的函数。您也没有在外部代码中调用函数;您只是打印函数本身(这是背包对象上的一个方法)。如果要返回列表,请删除列表周围不必要的lambda表达式

from typing import List

class Knapsack:
  def __init__(self, capacity: int, objects: int):
    self.capacity = capacity
    self.objects = objects

  def newHillclimber(self) -> List[int]:
    return [randint(0,1) for x in range(1,11)]

k = Knapsack(20, 10)  
print(k.newHillclimber())

相关问题 更多 >