こういうコードを書いてみた。
def data(value):
dictional[len(dictional)] = value
return value
dictional = {}
for i in range(5):
print dictional.get(i,data(i))
for i in range(5):
print dictional.get(i,data(i))
print dictional
実行結果
0
1
2
3
4
0
1
2
3
4
{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 0, 6: 1, 7: 2, 8: 3, 9: 4}

getは1降目のキーが有っても2項目を評価するみたい。
has_keyの条件わけで書けば良いって事なんだろうけど、これはこういうものなのかな?