gpt4 book ai didi

Python 和对象矩阵

转载 作者:行者123 更新时间:2023-12-01 05:20:30 25 4
gpt4 key购买 nike

我是 Python 新手。我用的是3.3版本。我做错了什么,但我找不到。我创建了 tb1,一个对象数组。内容被初始化然后打印。我创建了第二个数组 tb2。然后将 tb1 的内容复制到 tb2 中,同时调换行和列。第二次打印显示 tb1 已更改。我不明白为什么。整数矩阵不会出现这个问题。打印结果为:

123456789

123256369

#!/bin/python3
class Item:
n=0
m=0

class Tb:
items = [[Item() for i in range(3)] for j in range(3)]

tb1 = Tb()
for i in range(3):
for j in range(3):
tb1.items[i][j].n = i*3+j+1

# print original content of tb1
for i in range(3):
for j in range(3):
print( tb1.items[i][j].n, end="")
print()

tb2 = Tb()
for i in range(3):
for j in range(3):
tb2.items[j][i].n = tb1.items[i][j].n

# print content of tb1. It is altered
for i in range(3):
for j in range(3):
print( tb1.items[i][j].n, end="")
print()

最佳答案

class Tb:
items = [[Item() for i in range(3)] for j in range(3)]

在这里,您将创建一个类变量items,它将由 Tb 的所有实例共享。要创建实例变量,请使用__init__:

class Tb:
def __init__(self):
self.items = [[Item() for i in range(3)] for j in range(3)]

关于Python 和对象矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22491749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com