We need not care other functions, just the "current" one.
    Other functions are definitely out of our control.
My last example distinguish 3 cases:
    self.f()            # object/overloaded version
    __class__.f(self)   # decorated version
    __this_func__(self) # prime version








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