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