我有这个代码:
class Employee:
def __init__(self, name, pay, gender):
self.name = name
self.pay = pay
self.gender = gender
def add_raise(self):
self.pay = int(self.pay*1.10)
def __str__(self):
if self.gender == "Female" or self.gender == "female":
return f"{__class__.__name__} name: {self.name}, and she earns {self.pay} Pound"
else:
return f"{__class__.__name__} name: {self.name}, and he earns {self.pay} Pound"
def __repr__(self):
if self.gender == "Female" or self.gender == "female":
return f"{__class__.__name__} name: {self.name}, and she earns {self.pay} Pound"
else:
return f"{__class__.__name__} name: {self.name}, and he earns {self.pay} Pound" …Run Code Online (Sandbox Code Playgroud) 我正在阅读方法重写,在其他语言中,似乎要完全重写,该方法必须具有相同的签名(参数、返回类型...等)
所以我试图检查 python 是否是这样工作的,我尝试了下一个代码
class Person():
def __init__(self, name, age):
self.name = name
self.age = age
def print_name(self, last_name):
print(self.name + " " + last_name)
class Superhero(Person):
def __init__(self, name, age, power):
super().__init__(name, age)
self.power = power
def print_name(self):
print(self.name)
human = Person("Ron", 23)
super_human = Superhero("Superman", 30, "Flying")
human.print_name("Wesley")
super_human.print_name("Kent")
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,super_human.print_name("Kent")它需要一个参数,但我传递了两个参数,我知道 MRO 存在于 python 中,我在其中查看(对象>类>父类),所以我想知道是否有一个这样我就可以调用print_name()父类中存在的函数而不是当前函数,因为它们采用不同的参数。