Python:如何为子类中的属性设置默认值

Python:如何为子类中的属性设置默认值,python,python-3.x,class,attributes,parent-child,Python,Python 3.x,Class,Attributes,Parent Child,我正在研究Python,我定义了一个父类,如下所示 class Country: """Models countries""" def __init__(self, name, population, continent, zone): """Initiates the Country class""" self.na = nam

我正在研究Python,我定义了一个父类,如下所示

class Country:
    """Models countries"""
    def __init__(self, name, population, continent, zone):
        """Initiates the Country class"""
        self.na = name
        self.co = continent
        self.zo = zone
        self.po = population
我还在这个类中定义了两个方法。 我创建了一个名为Europe_country的子类,我想在其中将大陆和地带的默认值分别设置为“Europe”和“温带”

我试过这样做

class Europe_country(Country):
    """Models European countries specifically"""
    co = 'Europe'
    zo = 'Temperate'

europe_1 = Europe_country('Abc', 999)

但显然我错了。我在网上找不到解决这个问题的办法。请提供帮助。

您的子类只接受2个输入,因此您需要覆盖父类的
\uuu init\uuu
以只接受2个输入,然后您可以调用父类的init传递两个输入和设置值

类别国家:
“模型国家”
定义初始(自我、姓名、人口、大陆、区域):
“”“启动国家/地区类”“”
self.na=名称
self.co=大陆
self.zo=区域
self.po=总体
欧洲级国家(国家):
“”“专门为欧洲国家建模”“”
co=‘欧洲’
zo=‘温和的’
定义初始(自我、姓名、总体):
super()
欧洲1=欧洲国家('Abc',999)

我会这样做:

class Country:
    """Models countries"""
    def __init__(self, name, population, continent, zone):
        """Initiates the Country class"""
        self.na = name
        self.co = continent
        self.zo = zone
        self.po = population
        
class Europe_country(Country):
    """Models European countries specifically"""
    def __init__(self, name, population):
        super().__init__(name, population, "Europe", "Temperate")

europe_1 = Europe_country('Abc', 999)

使用预定义的值调用父构造函数,并从子构造函数设置其余值。

只需使用
super
强制初始化基类,同时在子类中使用其他两个参数:

class欧洲国家(国家):
“”“专门为欧洲国家建模”“”
定义初始值(名称、总体):
super().uuu init_uuuuuuuuuuuuuuuuuu(姓名,人口,“欧洲”,“温带”)
。。。