我在python中遇到了以下问题。我声明了一个类元素和一个类网络和一个列表总体。你知道吗
现在我用类元素的对象填充网络:e1、e2和e3。当我试图获取填充网络的元素的属性时,我得到了一个错误。你知道吗
你能帮我理解这些问题吗?你知道吗
import sys
class element:
def __init__(self):
self.property = 1
def getProperty(self):
return(self.property)
class network:
def __init__(self):
self.population = []
def addElement(self, element):
self.population.append([element])
def getElementProp(self):
for i in range(0, len(self.population)):
#print(self.population[i])
print(self.population[i].getProperty())
print(sys.version_info)
e1 = element()
e2 = element()
e3 = element()
net = network()
net.addElement(e1)
net.addElement(e2)
net.addElement(e3)
net.getElementProp()
**Output:**
line 20, in getElementProp
print((self.population[i]).getProperty())
AttributeError: 'list' object has no attribute 'getProperty
您正在附加一个包含
element
实例的列表对象,而您应该将该实例直接附加到population
列表:您还可以
expand
您的方法同时获取一个或多个元素,而无需重复调用:更重要的是,在
getElementProp
方法中,直接对元素进行迭代比使用range(len(...))
和后面的列表索引更为Pythonic:相关问题 更多 >
编程相关推荐