Python functions can be given new attributes from outside the scope?
问题 I didn't know you could do this: def tom(): print "tom's locals: ", locals() def dick(z): print "z.__name__ = ", z.__name__ z.guest = "Harry" print "z.guest = ", z.guest print "dick's locals: ", locals() tom() #>>> tom's locals: {} #print tom.guest #AttributeError: 'function' object has no attribute 'guest' print "tom's dir:", dir(tom) # no 'guest' entry dick( tom) #>>> z.__name__ = tom #>>> z.guest = Harry #>>> dick's locals: {'z': <function tom at 0x02819F30>} tom() #>>> tom's locals: {}