我有以下代码:
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
将键值对添加到对象的_dict属性中。我需要修复它,以便将键值对添加到类_dict属性中。我该怎么做?
注意:我无权访问Parent类。
答案 0 :(得分:4)
使用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}