从实例修改类属性

2024-04-25 22:24:59 发布

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

我有以下代码:

Class X(Parent):
   ...
Class Y(Parent):
   ...
Class Z(Parent):
  ...

X._dict = {'a':1, 'b':2, 'c':3}
Y._dict = {'e':4, 'f':5, 'g':6}
Z._dict = {'k':7, 'l':8, 'm':9}

def add_to_dict(obj, k, v):
   obj._dict [k] = v

我想调用add_to_dict(),给它传递一个X、Y或Z类型的对象add_to_dict()然后应该将k,v键值对添加到类的dict(而不是实例的)

上面最后一行:

obj._dict [k] = v

将键值对添加到对象的\u dict属性。我需要修复它,以便将键值对添加到class\u dict属性中。我该怎么做

注意:我没有访问父类的权限


Tags: to对象实例代码addobj类型属性
1条回答
网友
1楼 · 发布于 2024-04-25 22:24:59

使用type()访问实例的类,如:

代码:

def add_to_dict(obj, k, v):
    type(obj)._dict[k] = v

测试代码:

class X(object):
    pass

X._dict = {'a': 1, 'b': 2, 'c': 3}

a = X()
b = X()

add_to_dict(a, 'z', 20)
print(a._dict)
print(b._dict)
print(X._dict)

结果:

{'a': 1, 'b': 2, 'c': 3, 'z': 20}
{'a': 1, 'b': 2, 'c': 3, 'z': 20}
{'a': 1, 'b': 2, 'c': 3, 'z': 20}

相关问题 更多 >