【问题标题】:Utilising methods on a list object利用列表对象上的方法
【发布时间】:2021-06-11 13:52:51
【问题描述】:

我有一个问题,但没有找到满意的答案。在 JavaScript 中,可以简单地将方法添加到数组 alla:

const makeGrid = (size) => {
 let grid = [];
 for (let i = 0; i < size; i++) {
  let row = new Array(size).fill(0);
  grid.push(row);
 }

 grid.toggleChunkPlaced = (x, y) => {
  grid[y][x] === 0 ? (grid[y][x] = 1) : (grid[y][x] = 0);
 };
return grid
};

但是我不确定是否可以(或推荐)在 Python 中执行 - 我的最佳猜测是:

def make_grid(size):
 grid = []
 for i in size:
    row = [0]*size
    grid.append(row)

 grid.toggle_chunk_placed = lambda x, y: grid[y][x] = 1 if grid[y][x] == 0 else grid[y][x] = 0
 return grid

【问题讨论】:

  • pushappend。此外,您不应该为这样的对象添加额外的属性。对于list,这是不可能的,对于自定义对象是不可能的,但你不应该这样做。只需定义一个以grid 作为参数的普通函数。
  • 另外,用snake_case 代替camelCase。
  • 也许如果你能告诉我们toggleChunkPlaced 是在哪里/如何被调用的,我们可以更深入地了解你想如何在 python 中做到这一点。
  • 追加和驼峰式大小写改变(感谢 - js 在那里爬行)功能并不是特别重要我只是在另一个函数中调用网格实例上的方法,将块的坐标传递给切换。我对是否真的可以在 python 中做更感兴趣。干杯
  • 不。 list 无法做到这一点。如果您真的非常希望它成为可能,这是可能的,但我认为情况并非如此。如果您确实想要它,我将不得不写一个可能只会被否决的答案????。我的意思是,有更好的方法。

标签: python list object methods javascript-objects


【解决方案1】:

不。你不能用列表来做到这一点。如果您真的非常希望它成为可能,这是可能的,但我认为情况并非如此。如果您确实想要它,我将不得不写一个可能只会被否决的答案?。我的意思是,有更好的方法。 – Diptangsu Goswami

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2019-01-02
    • 2020-10-21
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    相关资源
    最近更新 更多