الموضوع الأصلي:
إذا حاولت تنفيذ هذا الكود:
def main():
for i in xrange(10**8):
pass
main()ستجد ان وقت التنفيذ الحقيقي 1.841s بينما إذا حاولت تنفيذ نفس الكود خارج الدالة
for i in xrange(10**8):
passستجد أن وقت التنفيذ الحقيقي: 4.543s .... لماذا؟ الإجابة البسيطة و المباشرة هي "scope of i" حيث أن المتغير i معرف داخل الدالة local بينما خارج الدالة global.
بنظرة أكثر تمعناً و باستخدام الدالة dis() و التي تسمح لك بالنظر داخل byte code للدالة التي تريدها ستجد أن المتغير i يتم تخزينه في STORE_FAST مادام داخل الدالة , أما خارجها فيتم تخزينه في STORE_NAME أو STORE_GLOBAL.