12 Haziran 2009 Cuma

İmport ve Reload

İmport ve reload arasındaki fark ?

Öncelikle python ide ‘sinde veya DOS komut satırında komutların ne işe yaradığını hatırlayalım. DOS komut satırında komut çalıştırabilmek için başlat/donatılar/komut istemi yolu izlenir ve dos komut satırına python derleyici programını kaydettiğimiz yeri gireceğiz. Eğer Windows kullanıcısı ve ileri ilerici isek bu yol ” C:\python23\python “ olacaktır sayet benim gibi eski sürüm meraklısı değilseniz python23 ü python25 ile değiştirmeniz gerekir (sürüm 2.5)

İlk öğrenilen komut klasik “merhaba dünya” çıktısı almak olur bunun için

>>print ‘merhaba dunya’
veya
>>print ‘merhaba’ + ‘dunya’
veya
>>a=’merhaba’
>>b=’dunya’
>>print a+’ ’+b

komutları kullanılabilir. Diyelim bu küçük programı kaydetmek istiyoruz. Eğer farklı bir gui kullanmıyor isek bu iş için not defteri kullanılabilir. Nasıl yapılacak derseniz. Yukarıdaki komutları not defterine yazdıktan sonra merhabadunya.py olarak kaydedelim. Ancak burada sık yapılan bir hata text kaydetme biçimini all files durumuna getirmeden kaydetme işleminin yapılması ve sonuçta kaydedilen dosyanın merhabadunya.py.txt olmasıdır.

Text dosyasına şunlar yazalım:

a=’merhaba dunya’

print ‘merhaba dunya’

Kaydettiğimizi varsayarak bu dosyayı yükleyelim. Ve python shell ‘ e geçelim Dos yerine (içini karartıyor insanın :)

Bunun için import takısı ile

>>import merhabadunya #DOS ta ise import merhabadunya.py demeliydik
#bu arada ‘#’ işareti yorum yazmak için kullanılır. Sharp mı dersiniz Diyez mi ben bilmem

şimdi mehabadunya.py dosyası alınmış oldu.

>>merhabadunya #dediğimizde



#çıkışını alırız

şimdi merhabadunya.py doyasını text dosyası olarak açıp

b=’ben geldim’
komutunu ekleyelim. Ve

a=’merhaba dunya’

komutunu silelim Kaydetme işlemlerini anlatıldığı gibi uygulayalım. Tekrar shell programına döndüğümüzde b yi elde etmek için import takısını kullanmak yerine

reload(merhabadunya)

demek daha şık olur. Nedenine gelince import takısı bir dünya yeniden derleme gerçekleştirdiğnden kodlar=>byte kodları=>sanal makine kodları şematik olarak;


yani neymiş. Programın çalışma esnasında herhangi bir dosyadaki değişimleri havada yaklamak için reload() kullanıyormuşuz.

Hiç yorum yok:

Yorum Gönder