vitar ou atrasar a avaliação de itens que não podem ser usad

Como é possível obter uma avaliação lenta no Python? Alguns exemplos simples:

>>> def foo(x):
...     print(x)
...     return x
... 
>>> random.choice((foo('spam'), foo('eggs')))
spam
eggs
'eggs'

Acima, nós realmente não precisamos avaliar todos os itens dessa tupla, para escolher um. E abaixo, o padrãofoo() realmente não precisava ser calculado, a menos que a chave de pesquisa estivesse realmente ausente no ditado:

>>> d = {1: "one"}
>>> d.get(2, foo("default"))
default
'default'
>>> d.get(1, foo("default"))
default
'one'

Estou procurando uma maneira Pythonic de refatorar exemplos como o acima para avaliar preguiçosament

questionAnswers(8)

yourAnswerToTheQuestion