gpt4 book ai didi

python - 向列表中的对象添加属性,python

转载 作者:行者123 更新时间:2023-11-28 18:36:59 24 4
gpt4 key购买 nike

我有一个文件,每一行都有一个对象的属性。我想获取以空格分隔的属性,并将它们添加到我的对象中。我想要列表中的对象,但我无法让它工作。我在没有做我认为应该做的事情的行旁边添加了评论。或者,如果我只传递单词列表,它会将整个列表存储在对象的第一个属性中。

class Brick(object):
def __init__(self, xopos=None, yopos=None, xcpos=None, ycpos=None, numb=None, prop=None):
self.xopos = xopos
self.yopos = yopos
self.xcpos = xcpos
self.ycpos = ycpos
self.numb = numb
self.prop = prop

bricklist = []

with open('data.txt', 'r') as f:
data = f.readlines()

for line in data:
words = line.split()
bricklist.append(Brick.xopos(words[0])) #line that doesnt work

for i in range(len(bricklist)):
print (bricklist[i].xopos)

数据很简单

1 13 14 15 16 17
2 21 22 23 24 14
3 3 4 5 6 7
4 1 1 1 1 1
5 5 6 4 1 1
6 5 6 8 4 2
7 4 9 7 5 6

我是 python 的新手,我发现我的很多实现想法都行不通,因此非常感谢任何帮助。

最佳答案

试试这个:

class Brick(object):
def __init__(self, values):
self.xopos = values[0]
self.yopos = values[1]
self.xcpos = values[2]
self.ycpos = values[3]
self.numb = values[4]
self.prop = values[5]

bricklist = []

with open('data.txt', 'r') as f:
for line in f.readlines()
bricklist.append(Brick(line.split())

for brick in bricklist:
print (brick.xopos)

不是单独传递每个属性,而是从文件中读取每一行,将其拆分为一个列表并将其传递给 Brick 对象的构造函数。

您可以通过在使用前验证values 的内容来改进__init__ 方法。

关于python - 向列表中的对象添加属性,python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31434830/

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