मैं एक वर्गअजगर: समारोह वास्तव में 1 तर्क (2 दिए गए)
class CatList:
lista = codecs.open('googlecat.txt', 'r', encoding='utf-8').read()
soup = BeautifulSoup(lista)
# parse the list through BeautifulSoup
def parseList(tag):
if tag.name == 'ul':
return [parseList(item)
for item in tag.findAll('li', recursive=False)]
elif tag.name == 'li':
if tag.ul is None:
return tag.text
else:
return (tag.contents[0].string.strip(), parseList(tag.ul))
में इस विधि है, लेकिन होता है जब मैं इसे इस तरह कॉल करने के लिए प्रयास करें:
myCL = CatList()
myList = myCL.parseList(myCL.soup.ul)
मैं निम्नलिखित त्रुटि है :
parseList() takes exactly 1 argument (2 given)
मैं विधि के लिए एक तर्क के रूप स्वयं जोड़ने की कोशिश की लेकिन जब मैं कर त्रुटि मैं निम्नलिखित है:
global name 'parseList' is not defined
यह वास्तव में मुझे स्पष्ट नहीं करता कि यह वास्तव में कैसे काम करता है।
कोई संकेत?
धन्यवाद
धन्यवाद, लेकिन जैसा कि मैंने कहा कि यह मैं क्या करने की कोशिश की और मैं तो प्राप्त होते हैं: वैश्विक नाम 'parseList' को – lorussian
को बार-बार कॉल करने के लिए परिभाषित नहीं किया गया है, तो आप "self.parselist (tag.ul)" –
@silviolor लिखेंगे, क्या आपने फ़ंक्शन अस्वीकरण और कॉल दोनों में "स्वयं" जोड़ा था? घोषणा में पहले पैरामीटर के रूप में और "self.parse ..." के रूप में जब आप इसे कॉल करते हैं? –