我正在尝试将class元素传递给方法。元素在其中动态插入当前时间。 Mine类看起来像这样:
class MineContact(dict):
def __init__(self, **kwargs):
# set your default values
import time
curr_time = repr(time.time()).replace('.', '')
self['tel'] = [{
'type': ['Mobile'],
'value': '555%s' % curr_time[8:]}]
...
所以,我创建了这个类的对象,现在我想将它作为方法参数插入:
contact = MineContact()
extra_text = "-%d" % (self.iteration)
new_contact.insert_phone(contact.tel['value'])
当我运行此脚本时,我收到此类错误:
TypeError:list indices必须是整数,而不是str
那么,有谁知道我在哪里弄错了?
答案 0 :(得分:2)
您有一个字典[{}]
而非{}
的列表。以下内容适用:
contact = MineContact()
extra_text = "-%d" % (self.iteration)
new_contact.insert_phone(contact.tel[0]['value'])
或者,您可以将self['tel']
更改为字典而不是字典列表。这是它的样子:
self['tel'] = {'type': ['Mobile'], 'value': '555%s' % curr_time[8:]}
然后,您的原始new_contact.insert_phone(contact.tel['value'])
将起作用