[Tutor] how to unittest cli input
Alex Kleider
akleider at sonic.net
Thu Oct 15 06:56:35 CEST 2015
On 2015-10-14 12:27, Peter Otten wrote:
> Alex Kleider wrote:
>
>> On 2015-10-13 14:44, Alex Kleider wrote:
>>> On 2015-10-13 12:11, Danny Yoo wrote:
>>>
>>>
>>>> ######################
>>>> def make_ask(f, l, p):
>>>> d = {'Enter your first name: ' : f,
>>>> 'Enter your last name: ' : l,
>>>> 'Your mobile phone #: ' : p}
>>>> return d.get
>>>> ######################
>>
>> This is an example of a 'closure' is it not?
>
> It does not make big difference, but I would call the return value
> "bound
> method" rather than "closure". For me closure implies access to the
> local
> namespace of the enclosing function, e. g.
>
> def make_ask(f, l, p):
> d = {'Enter your first name: ' : f,
> 'Enter your last name: ' : l,
> 'Your mobile phone #: ' : p}
> def get(key):
> return d.get(key)
> return get
>
> Here d is looked up when get() is invoked. Let's make a modification to
> demonstrate that the current binding of d is used:
>
>>>> def make_ask(f, l, p):
> ... d = {'Enter your first name: ' : f,
> ... 'Enter your last name: ' : l,
> ... 'Your mobile phone #: ' : p}
> ... def get(key):
> ... return d.get(key)
> ... def set_d(new_d):
> ... nonlocal d
> ... d = new_d
> ... return get, set_d
> ...
>>>> get, set_d = make_ask(*"abc")
>>>> get("Enter your first name: ")
> 'a'
>>>> class WontTell:
> ... def get(self, key): return "won't tell"
> ...
>>>> set_d(WontTell())
>>>> get("Enter your first name: ")
> "won't tell"
Thank you, Peter, for your continued efforts to explain.
It is all getting pretty convoluted for my poor brain!
It took a very long time for me to figure out what the
class WontTell was all about.
I probably should follow Danny Yoo's advice and not concern
myself with this but my curiosity is roused.
ak
More information about the Tutor
mailing list