Python类属性未更改

2024-03-28 22:27:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我的python脚本中有这段代码

class Class(object):
    client_id = ''

    @classmethod
    def get_client_id(cls):
        return cls.client_id


class Service(object):

    @staticmethod
    def get_class():
        cls_obj = Class()
        cls_obj.client_id = 'this is client id'
        return cls_obj

print(Service.get_class().get_client_id())

但是当我运行python脚本时,它会显示空字符串 而不是“this is client id”。请帮忙


Tags: 代码脚本clientidobjgetreturnobject
2条回答

您是在类的实例上设置属性,而不是在不渗透到类或任何东西的类本身上设置属性。但是,类方法getter查看类,因此找不到它。删除@classmethod它就会工作。你知道吗

因为您实际上是在更改cls_obj.client_id,而不是cls.client_id。你知道吗

请注意,您可以使用cls_obj.client_id访问类变量client_id,但如果为其赋值,则只需将实例变量添加到cls_obj。现在您有了cls.client_idcls_obj.client_id,下次尝试cls_obj.client_id时,您将得到实例变量。你知道吗

相关问题 更多 >