【发布时间】:2019-03-26 11:12:54
【问题描述】:
我要传递给类 init 的参数之一是具有字符串值的变量。此字符串值是列表的名称。 init 应该使用此字符串值将类对象附加到该列表。我做错了什么?
我尝试过使用 locals() 和 globals() 但它以“TypeError: unhashable type: 'list'”结尾。也试过 vars() 也没用。
refList = []
cmpList = []
class Part(object):
def __init__(self, origin, name, type, listName):
self.origin = origin
self.name = name
self.type = type
partListName = locals()[listName]
partListName.append(self)
#... some file parsing..
part1 = Part((str(origin), str(name) ,str(type), 'refList')
# ... some other file parsing ...
part2 = Part((str(origin), str(name) ,str(type), 'cmpList')
【问题讨论】:
-
首先,你应该根据PEP8将你的类名重命名为
class Part -
第二,你为什么要那样做?您这样做的方法或最终目标是什么?
-
感谢您的重播和澄清。我期待从两个不同的文件生成大量对象。我想找到两个文件之间不同的特定对象。使用列表可以实现快速查找。 (o(n) )
标签: python-3.x string list variables