【发布时间】:2023-04-01 19:47:01
【问题描述】:
目标是使用__init__ 方法构建一个类,该方法将允许创建将使用特定字典初始化的对象。
详情:
文件mydicts.py 是各种字典的集合。
从我打算创建的类构建的对象将被初始化为来自mydicts.py 的字典之一。
mydicts.py 示例:
dict1 = {k1:v1, k2:v2,...,kn:vn}
dict2 = {k1:v1, k2:v2,...,km:vm}
etc.
我的尝试:
class Example(dict):
def __init__(self, dictx):
self.dictx = getattr(__import__("mydicts", fromlist=['m']), dictx)
结果:
e = Example('dict1')
print e
{} # <- got empty dictionary. Want {k1:v1, k2:v2,...,kn:vn}
目标是创建这样的对象:
a = Example(dict1)
print a
# {k1:v1, k2:v2,...,kn:vn}
b = Example(dict2)
print b
# {k1:v1, k2:v2,...,km:vm}
【问题讨论】:
-
打印关于任何对象的信息,您需要在类中定义
__str__方法。尝试在该方法中打印 self.dictx,当您打印该类的实例时,它将被隐式调用 -
我必须接受@iCodez 的解决方案,因为他更详细,但与您建议的想法大致相同。
标签: python class inheritance dictionary python-2.x