Python dikkat edilmesi gerekenler

Python güzel ve kullanımı kolay post modern diyebileceğim bir dil. Fakat şu konularda kodunuzu yazarken 5-10 kere daha düşünerek yazın diyor ve maddelemeye başlıyorum.

Ne Açıyorsanız Onu Kapayın!

Programın içinde kullanacağınız bir dosya içeriği var diyelim. Ne yaparız normalde, açarız dosyayı okuruz. Bu noktada kapatmaya özel dikkat. Tutarsız bir şekilde ne olduğunu anlamadan başınıza bişeyler gelebilir, başka bir değişken için ya aynı dosyayı okuyamazsınız, ya aynı değişkene başka bişiler yapamazsınız vb..

fileHandler = open("/usr/deneme.log", "r")
content = sqlFileHandler.read()
fileHandler.close()

MysqlDb ile ilgili

import MySQLdb as sql

diye import ettiğimiz python mysql kütüphanesinde,

db = sql.connect(.....

dedikten sonra,

c = db.cursor();

diyoruz. Burada istediğimz bir query yi

c.execute('select * from biseybisey where a=3')

diye yazabilirken, DELETE ile ilgili bir query yazdığımızda

c.commit();

yazmazsanız, o delete querysi çalışmıyor. Eğer ki bir dosya içindeki bazı queryleri sırayla çalıştırıyorsanız, bu noktada en sondaki queryniz DELETE ise çalışamyacağını berlitmek isterim (Python 2.4) Ama delete den sonra başka bir query var ise, o query sayesinde sanırım kendiliğinden commit ediyor.

C ile işiniz bittikten sonra

db.close();

demeyi de unutmayın. Açık kalmasın, saçmalar yine bişeyler olur. belli mi olur. (biraz gerginim, dün bayağı bi canımız yandı da.)

Try Except (Yani Try Catch) Kullanın!

Pythonda herşeyi try catch bloklarına koyarsanız mantıklı olur.
Kullanımı şöyle :

try:
	f = open("/usr/deneme/dosya.log", "a")
	f.write("yazilacak icerik burada\n")
	f.close()
except OSError, strerror:
	print "LOG HATA: " + strerror

Son Olarak Birkaç Tavsiye.

Python güzel bir dil fakat 2.5 ü , 2.7 si 3 ü, hepsi ayrı telden çalıyor. Bu da kişinin hem kafasını karıştırıyor, hem de yaptığı bir şeyden emin olamamasına sebep oluyor. Canınızı sıkabiliyor bu da. Yapmış olduğunuz programı özellikle python için diyorum, mutlaka object oriented yapın. Herkesin yaptığı iş belil olsun ve net o işi yapsın. Kodları çok refactor etmeyin, testlerden sonra çalışan kod doğruca çalışsın. (Fakat yine de bu neden çalışmıyor sorusuna, e bu çalışıyordu ne oldu??? diye soruyla karşılık verebilirsiniz. Biz yaşadık.)