You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何打印绑定到类实例的numpy数组?访问create_grid返回值方法

Python类与Numpy数组问题解答

问题1:绑定到类实例的numpy数组能否被打印?

可以,只要将numpy数组赋值为类的实例属性(比如self.grid),就能通过实例直接访问并打印,没有限制。

问题2:如何访问create_grid方法的返回值并实现指定格式打印?

核心是把create_grid生成的数组保存为实例属性,同时优化print_grid的实现逻辑,避免硬编码。以下是修正后的完整代码:

import numpy as np

class Map:
    def __init__(self, n):
        self.n = n
        # 将create_grid的返回值保存为实例属性self.grid
        self.grid = self.create_grid(n)

    def create_grid(self, n):
        arr = np.random.randint(0, 2, size=(n, n))
        # 转为字符串类型,满足后续计算需求
        res = arr.astype(str)
        return res

    def print_grid(self):
        # 遍历每行,按期望格式打印
        for row in self.grid:
            print(f"[{', '.join(row)}]")

使用示例

map1 = Map(5)
map1.print_grid()

输出效果(随机生成,每次结果不同)

[0, 1, 1, 1, 0]
[0, 0, 1, 1, 0]
[0, 0, 0, 1, 0]
[0, 0, 0, 0, 0]
[0, 1, 0, 1, 0]

原代码的问题修正说明

  • 原__init__方法仅调用create_grid但未保存返回值,导致print_grid无法访问生成的数组;现在将返回值赋值给self.grid,实例内部所有方法都能直接调用。
  • 原print_grid硬编码range(5),无法适配不同的n值;改用遍历self.grid的行,代码更简洁通用。
  • 通过', '.join(row)快速将每行的字符串元素转为逗号分隔格式,匹配你期望的输出样式。

内容的提问来源于stack exchange,提问作者Zoltan Mrsan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 15:10:44