xml 파일에서 모든 요소를 산출하는 Reader() 클래스에서 getElements 생성기 함수가 있습니다. 또한 기능 태그가있는 요소 만 생성하는 getFeatures 함수가 필요합니다.루프 내에서 유형이없는 함수로 생성기 유형 함수를 호출하는 방법은 무엇입니까?
나는 getFeatures를 호출 할 때 True로 설정되는 플래그 featuresOnly을 가지고, 그리고 시도하는 방법 getFeatures이 같은 self.getElements 전화에 :) (getElements에
def getFeatures(self):
self.getFeaturesOnly = True
self.getElements()
이 방법 나는 단지 나는이 작업을 수행 할 때, 그러나
def getElements(self):
inFile = open(self.path)
for element in cElementTree.iterparse(inFile):
if self.getFeaturesOnly == True:
if element.tag == 'feature':
yield element
else:
yield element
inFile.close()
을해야하고
features = parseFeatureXML.Reader(filePath)
for element in features.getFeatures():#
print element
내가 얻을 실행 : TypeError : 'NoneType'개체가 반복 가능하지 않습니다. getFeatures에 yield가 포함되어 있지 않기 때문입니다. 지금,이 문제를 해결하는 방법을 알고있는 방법은 getFeatures에 getElements의 코드를 복사 만 getFeatures의
if elementFunctions.getElmentTag(element) == 'feature':
() 함수를 사용하는 것입니다,하지만 난 오히려 코드를 복제 할 수 없습니다. 그렇다면 어떻게 발전기 기능을 유지할 수 있고, 어떤 태그를 얻고 싶은지에 대해 다른 기능을 사용할 수 있습니까?
def getFeatures(self):
self.getFeaturesOnly = True
self.getElements()
로 :
def getFeatures(self):
self.getFeaturesOnly = True
return self.getElements() # returning the generator
클리어
감사합니다. –