2014-02-13 3 views
0

Что такое лучший способ добиться чего-то вроде этого:определяющие значения в словаре, основанные на других значениях есть

dic = { 
    'foo': Tree(), 
    'foobar': #the method 'branch()' executed on 'foo' 
} 

это может быть сделано так, как я описал его, или я должен использовать второе задание с dic['foobar'] = dic['foo'].branch()?

+0

Что делать, если в словаре есть 3 пары? Помните, что словари неупорядочены. – Christian

+0

@Wooble Я отредактировал мой вопрос, чтобы сделать мои намерения более ясными. – Joren

ответ

0

Я не вижу никаких причин, почему бы не сделать это как:

t = Tree() 
dic = {'foo': t, 'foobar': t.branch()} 

Но, возможно, этот трюк может помочь вам:

dic = {'foo': Tree(), 'foobar': lambda: dic['foo'].branch()} 

Недостатком является то, что вы должны использовать вместо dic['foobar']() от dic['foobar'] и что функция .branch() выполняется каждый раз, что, вероятно, не то, что вы хотите.

+0

Иногда самый очевидный ответ - лучший. Спасибо. – Joren

Смежные вопросы