ฉันพบข้อผิดพลาดบางอย่างที่ไม่สามารถหาได้ เบาะแสอะไรที่ผิดปกติกับรหัสตัวอย่างของฉัน?
class B:
def meth(self, arg):
print arg
class C(B):
def meth(self, arg):
super(C, self).meth(arg)
print C().meth(1)
ฉันได้รับรหัสทดสอบตัวอย่างจากความช่วยเหลือของวิธีการในตัว 'super'
นี่คือข้อผิดพลาด:
Traceback (most recent call last):
File "./test.py", line 10, in ?
print C().meth(1)
File "./test.py", line 8, in meth
super(C, self).meth(arg)
TypeError: super() argument 1 must be type, not classobj
FYI นี่คือความช่วยเหลือ (super) จากไพ ธ อนเอง:
Help on class super in module __builtin__:
class super(object)
| super(type) -> unbound super object
| super(type, obj) -> bound super object; requires isinstance(obj, type)
| super(type, type2) -> bound super object; requires issubclass(type2, type)
| Typical use to call a cooperative superclass method:
| class C(B):
| def meth(self, arg):
| super(C, self).meth(arg)
|