小编bri*_*100的帖子

如何使 __str__ 或 __repr__ 返回当前类的名称?

我有这个代码:

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 python-3.x python-class

3
推荐指数
1
解决办法
1645
查看次数

如果当前类中有一个同名的函数,我如何调用父方法(如果可能)

我正在阅读方法重写,在其他语言中,似乎要完全重写,该方法必须具有相同的签名(参数、返回类型...等)

所以我试图检查 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()父类中存在的函数而不是当前函数,因为它们采用不同的参数。

python python-3.x python-class

3
推荐指数
1
解决办法
1451
查看次数

标签 统计

python ×2

python-3.x ×2

python-class ×2

class ×1