当我尝试将基类扩展到子类时,它无法正常工作
显示错误
b1 = B(“ adnan”,25,“ male”)
TypeError:object()不带参数
这是我的代码:
class A:
def letter(self,name,age):
self.name=name
self.age=age
class B(A):
def farhan(self,gender):
self.gender=gender
b1=B("adnan",25,"male")
print(b1.name,b1.age,b1.gender)
答案 0 :(得分:1)
您的任何一个类都没有用于初始化该类的__init__
方法。当您执行以下操作时:B("adnan",25,"male")
,它将转换为对B.__init__
的调用:
B.__init__(<object of type B>, "adnan", 25, "male")
类__init__
提供的object
的默认实现不带任何参数,这正是错误的意思。 A
继承自object
(issubclass(B, object) == True
),因此其默认的__init__
方法与object
相同。
您可以尝试以下方法:
class A:
def __init__(self, name, age):
self.name=name
self.age=age
class B(A):
def __init__(self, name, age, gender):
super().__init__(name, age) # initialise parent
self.gender = gender
答案 1 :(得分:0)
写类似的东西
uploadImage(): Promise<any> {
const formData = new FormData();
formData.append('image', this.imageForm.get('image').value);
return this.http.post(this.uploadImageURL, formData)
.toPromise()
.catch((e) => {
// error
});
}
您正在创建类'B'的新实例。这样做时,您正在调用该类的b1 = B("adnan", 25, "male")
方法。可能的解决方案如下:
__init__
您需要重新掌握Python OOP技能!一个不错的来源是https://realpython.com/python3-object-oriented-programming/