【问题标题】:Is there a way to create a "default" method for a Python class that is used by all inherited classes automatically?有没有办法为所有继承类自动使用的 Python 类创建“默认”方法?
【发布时间】:2022-11-09 00:06:57
【问题描述】:

(PYTHON 3.x)我想在父类中有一个方法,每次在从父类继承的任何后续类中构造一个类时都会运行该方法。谢谢您的帮助。

class Worker:
    def __init__(self, name: str, salary: float, years: int):
        self.w_name = name
        self.w_salary = salary
        self.w_years = years
        self.pension_amt = .1

    def pension(self):
        return self.w_years * (self.w_salary * self.pension_amt)

【问题讨论】:

  • 您能否准确解释您正在寻求的行为是什么? “每次在从父级继承的任何后续类中构造一个类时运行。”是什么意思确切地?
  • 您的__init__() 方法听起来很有希望。
  • 谢谢大家,这样做是正确的。

标签: python class inheritance methods


【解决方案1】:

将其添加到__init__。例如,

class Worker:
    def __init__(self, name: str, salary: float, years: int):
        self.w_name = name
        self.w_salary = salary
        self.w_years = years
        self.pension_amt = .1
        self.pension = self.pension()

然后,任何子类定义为

class Child(Worker):
   def __init__(self, name, salary, years):                                                                                                                                                          
       super().__init__(name, salary, years) 

将运行它。

【讨论】:

  • 谢谢你做到了。
【解决方案2】:

JustLearning 的回答是一个可行的解决方案。

【讨论】:

    猜你喜欢
    • 2010-12-27
    • 2011-01-14
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2021-07-24
    • 2013-04-17
    相关资源
    最近更新 更多