我有一个字典,对象存储为值。我如何访问和打印特定对象的属性? 例如,
dict={0:obj0, 1:obj1, 2:obj2, 3:obj3}
我想打印obj1.attribute。我试过了:
print (dict[key]).attribute
无济于事。我不能直接访问该对象,因为我没有将它分配给变量。该程序自动生成对象并使用自动生成的密钥将它们放在dict中,这使我无需手动分配任意数量的值。如果有人知道更好的方式来表达这个问题,请继续。非常感谢你!
编辑:我的字典名称不是'dict',我的属性也不是'属性'。这些仅用于清楚。
编辑:好的,这是正在发生的事情。我正在使用Tkinter通过输入字段检索联系信息。我正在使用该输入来创建具有属性名称,地址等的对象。所以,class User():
def __init__(self, name='', street='', city='', state='', zip=''):
self.name=name
self.street=street
self.city=city
self.state=state
self.zip=zip
###### code below is outside of class User #####
def make(name='', street='', city='', state='', zip='', count=0):
dic[count]=User(name='', street='', city='', state='', zip='')
有没有理由“dic [0] .name”会返回一个空字符串?
答案 0 :(得分:1)
更改此
def make(name='', street='', city='', state='', zip='', count=0):
dic[count]=User(name='', street='', city='', state='', zip='')
到
def make(name='', street='', city='', state='', zip='', count=0):
dic[count]=User(name=name, street=street, city=city, state=state, zip=zip)
如果你的属性包含空格或空字符串,你可以在某些情况下这样做,它会帮助你知道是否有东西。
print "<%s>" % my_dict[key].attribute
如果您看到<>
这可能是一个空字符串,如果您在其间看到其他内容,则可能是空格是制表符或换行符或任何不可见的内容。
另一种可能性是,由于某些原因,您获得的attribute
是一个覆盖__repr__
或__str__
并返回空字符串的对象。如果不知道你正在处理什么,就很难提供更多帮助。