7
super () เพิ่ม“ TypeError: ต้องเป็นประเภทไม่ใช่ classobj” สำหรับคลาสสไตล์ใหม่
การใช้งานsuper()TypeError ต่อไปนี้เป็นสาเหตุ: >>> from HTMLParser import HTMLParser >>> class TextParser(HTMLParser): ... def __init__(self): ... super(TextParser, self).__init__() ... self.all_data = [] ... >>> TextParser() (...) TypeError: must be type, not classobj มีคำถามที่คล้ายกันใน StackOverflow: Python super () เพิ่ม TypeErrorซึ่งข้อผิดพลาดถูกอธิบายโดยข้อเท็จจริงที่ว่าผู้ใช้คลาสนั้นไม่ใช่คลาสสไตล์ใหม่ อย่างไรก็ตามคลาสดังกล่าวเป็นคลาสสไตล์ใหม่เนื่องจากสืบทอดมาจากobject: >>> isinstance(HTMLParser(), object) True ฉันพลาดอะไรไป ฉันจะใช้super()ที่นี่ได้อย่างไร ใช้HTMLParser.__init__(self)แทนsuper(TextParser, self).__init__()จะได้ผล แต่ฉันอยากจะเข้าใจ TypeError PS: objectโจอาคิมชี้ให้เห็นว่าการเป็นตัวอย่างใหม่สไตล์ชั้นจะไม่เทียบเท่ากับการเป็น …