मैंने हमेशा सोचा था कि पायथन 2.7 फ़ंक्शंस उस क्षेत्र को संदर्भित करता है जिसे उन्होंने परिभाषित किया था। निम्नलिखित कोड पर विचार करें। दूसरा आउटपुट क्यों नहीं है "गणना: पाप"?पायथन क्लोजर को समझना
क्या कोड को संशोधित करने का कोई तरीका है, इसलिए यह अपेक्षित काम कर रहा है?
import math
mymath = dict()
for fun in ["sin", "cos"]:
def _impl(val):
print "calculating: %s" % fun
return getattr(math, fun)(val)
mymath[fun] = _impl
# calculating: cos
print mymath["cos"](math.pi)
# calculating: cos <- why?
print mymath["sin"](math.pi)