At 2017-03-01 09:30:56, "Matthias welp" <boekewurm@gmail.com> wrote: >Hi, > >On 1 March 2017 at 01:12, ÓïÑÔÆÆËé´¦ <mlet_it_bew@126.com> wrote: >> >> How a function refer itself? >> def f(): >> f() # fine... really??? > >I understand your question as the following: "Should functions be >allowed to point to themselves/the as of construction time unbound >variable in the function body, as they are not yet bound to a variable >at construction time" > >I think they should be allowed, as only when the function is executed >the variable lookups (and therefore function lookups) should happen. >Object.function() would have, well, interesting behaviour if you were >to pre-insert all function calls in the code: > > d = {'hello': 'world'} > def f(): > d.keys = lambda: {} > print(d.keys()) > >would result in "['keys']" being printed, while you explicitly said >that the keys method on variable d has to return an empty dict. > >I hope this helps you with your question. > >-Matthias