我对python还是个新手,一直在玩这个有一段时间了,如果有人能指出我的错误,我会很感激的。你知道吗
基本上,我试图构建一个包含许多不同对象的列表,每个对象都有几个属性。你知道吗
我的尝试被简化并显示在下面,基本上我为这个对象构建了一个类,包含几个值,然后尝试构建一个列表来包含这些对象-它似乎没有任何成功的方向!你知道吗
如有任何建议,将不胜感激。你知道吗
class TagData(object):
def __init__(self):
self.tag = []
self.val = []
self.rel = []
self.database = []
self.description = []
tagvalue='xxx'
tagList=[]
tagList.append(TagData.tag(tagvalue))
tagList.append(TagData.val(val1))
目前我得到一个错误,说TagData没有属性'tag'
谢谢你
首先,您需要创建一个TagData实例,如下所示:
这就是为什么你会得到AttributeError,因为当你使用TagData.tag标签(…),您实际上是在尝试调用TagData类对象的tag方法,而不是设置特定实例的属性。你知道吗
接下来,您需要指定一个属性或创建一个方法来设置它。例如,可以向类中添加如下方法:
然后:
或者您可以这样做(如果您不希望定义getter/setter):
不要在一行中完成所有这些,因为当您调用addVal时,它将返回None—然后您将在列表中附加None,而不是对象。你知道吗
[]
声明了一个列表,所以您的成员变量tag、val、rel等都是列表值,但听起来它们真的想成为标量?因此,请在构造函数中尝试以下操作:然后您可以这样创建对象:
如果希望能够在构造函数调用中指定tag和val,则需要添加构造函数参数。有一种方法:
然后:
直接的问题是您没有实例化
TagData
。__init__
中的属性是实例属性(注意用于为实例设置它们的self.
前缀),而不是类属性。用这样创建的TagData
实例尝试相同的代码:TagData()
更广泛的问题是,我不完全明白你想做什么。没有这些,很难更好地回答你的问题。给你的问题添加更多的上下文会有帮助。你知道吗
相关问题 更多 >
编程相关推荐