You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Python类的所有实例返回首个实例的属性值?

实现Capital类多实例共享首个初始化值的方案

要让所有Capital实例调用name()方法都返回第一个实例传入的城市名,同时允许创建多个实例不抛出异常,可以通过类变量存储初始值的方式实现,修改后的代码如下:

修改后的Capital类

class Capital:
    # 类变量:存储第一个传入的城市名,初始为None
    _first_city = None

    def __init__(self, city_name):
        # 仅在类变量未被初始化时,设置首个城市名
        if Capital._first_city is None:
            Capital._first_city = city_name

    def name(self):
        # 返回类变量保存的首个城市名
        return Capital._first_city

测试验证

运行以下实例化代码:

capital_1 = Capital("London")
capital_2 = Capital("Madrid")
capital_3 = Capital("Paris")

print(capital_2.name() == "London")  # 输出 True
print(capital_3.name() == "London")  # 输出 True

核心逻辑说明

  • 使用类变量_first_city替代实例变量存储城市名,类变量属于整个类,所有实例共享其值。
  • 初始化方法__init__仅在类变量未被赋值时(即第一个实例创建时)设置城市名,后续实例的初始化不会覆盖这个值。
  • name()方法直接返回类变量的值,确保所有实例调用都返回第一个传入的城市名。
  • 完全允许创建多个实例,不会抛出任何异常,满足需求。

内容的提问来源于stack exchange,提问作者DDela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:40:27