我的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”。请帮忙
您是在类的实例上设置属性,而不是在不渗透到类或任何东西的类本身上设置属性。但是,类方法getter查看类,因此找不到它。删除
@classmethod
它就会工作。你知道吗因为您实际上是在更改
cls_obj.client_id
,而不是cls.client_id
。你知道吗请注意,您可以使用
cls_obj.client_id
访问类变量client_id
,但如果为其赋值,则只需将实例变量添加到cls_obj
。现在您有了cls.client_id
和cls_obj.client_id
,下次尝试cls_obj.client_id
时,您将得到实例变量。你知道吗相关问题 更多 >
编程相关推荐