You need to enable JavaScript to run this app. Python中如何在其他类的方法内修改目标类的类变量
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何在其他类的方法内修改目标类的类变量

实现方案

你现在在change_company_name方法里写的Company.name = "xxx"赋值逻辑,本身完全可以实现对Company类类变量的修改,当前实现失效的核心原因是写在方法内的代码没有被实际调用执行。

只要按照正常的方法调用流程触发方法内的赋值操作,就能达到修改效果,完整可运行的代码示例如下:

class Company:
    name = "A Company name"
    def __init__(self, num_of_employees, found_year):
        self.num_of_employees = num_of_employees
        self.found_year = found_year

class Owner:
    # 类作用域下直接赋值修改Company类变量的逻辑本身是生效的
    Company.name = "I know that here is changing the Company name"

    def change_company_name(self):
        # 方法内通过类名直接修改类变量,和类作用域下的修改逻辑完全等价
        Company.name = "Another Company Name"


# 实例化Owner对象
current_owner = Owner()
# 调用修改方法,触发内部的变量赋值逻辑
current_owner.change_company_name()
# 打印验证结果,输出为 "Another Company Name"
print(Company.name)

容易踩的坑

  • 如果在方法内误写成self.name = "xxx",只会给当前Owner实例生成一个独立的实例属性,根本不会触碰到Company的类变量,一定要严格通过Company.类变量名的访问形式修改。
  • 如果不想依赖Owner实例、想直接通过类调用修改方法,可以把方法改成静态方法/类方法,省去实例化的步骤:
    @staticmethod
    def change_company_name():
        Company.name = "Another Company Name"
    
    这种写法下直接调用Owner.change_company_name()就能完成修改,不需要先创建Owner对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 18:36:00