Python Kod Yazımı (Makale)
-
Python diğer tum dillerin aksine boşluklara ve girinti çıkıntılara çok fazla onem veren bir dil.Diğer birçok dilde donguleri başlattıktan sonra {} gibi parantez içine alırsınız.Ancak python’da bu yerine dongu içinde olduğunu belirtmek için boşluklar kullanılır.Haliyle bu da goze hoş gelen ve kolay okunan bir kod parçası ortaya çıkarır.Yoksa diğer dillerde yazılmış bir kodun tam olarak ne yaptığını anlamamız için ya çok fazla zaman harcıcaz ya da gelişmiş bir ide kullanmamız gerekecek.İşte tam bu noktada Python’un temel olarak aldığı ve benimde çok sevdiğim “Programlar insanların okuması, makinelerin çalıştırabilmeleri için yazılırlar” sozu buyuk onem taşıyor.
Biz makinelerin çalıştıracakları kodlar ile uğraşmayacağımız için bize gerekli olan insanların okuması kısmıdır.Elbet her kodu insanlar okuyabilir.Ama dile gore okuma suresi buyuk oranda değişir.Python’un en iddalı olduğu alanlardan birisi belki de en başta gelen ozelliği kodlarının kolayca okunmasıdır.İşte bu noktada başlığa da yazdığım Pythonic Syntaxdeyimi akla geliyor.
Benim bundan 1-2 yıl once gorduğum ve okuduğumda tam istediğim dilin Python olduğuna karar verdiğim slaytlardan bir iki ufak başlıkları seçip buraya yazmak istedim.Eğer siz bu slaytların tamamını orjinal dilinden okumak istersenizburadan ulaşabilirsiniz.
Her Python programcısı PEP8’i bilmelidir
PEP(Python Enhancement Proposal) Python’u geliştirme onerileridir.Python’u yazan kişilerden bu dilin gelişmesi için onerileri iyice okuyup benimsemek lazım.İlk girişte de yazdığım gibi Python’un Java,C,C++,C# gibi birçok dilden farklı bir yapısı vardır.Bunların başında boşluklar ve girintili yazma gelir.Tabi bu yazım da belirli kurallara dayanır.Onlardan bazılarını aşağıda yazacağım.
Boşluklar
- Her girinti için 4 boşluk kullanılması lazımdır.
- Hard tab kullanımından kaçınmak ve bu tabları boşluklar ile karıştırmamak lazım.
- Fonksiyonlar arasına bir satır, sınıflar arasına da iki satır koymak uygundur.
- Kullandığınız sozluk, liste, demet ve arguman listesinde virgulden sonra bir boşluk koymak gerekir.
- Karşılaştırma ve atamalarda aralara boşluk koyulmalıdır.(if meyve==elma: yerine if meyve = elma: )
- Parantezlerden once boşluk koyulmaz.
- Fonksiyonu tanıttığımız kısımda boşluk olmaz.
İsimlendirmeler
kucuk_harf gibi bir kullanımı fonksiyonlar, metodlar ve değişkenlerde kullanabiliriz. kucuk_harf ve BUYUK_HARFdeğişmez olarak kullanılabilir.FenSinifi gibi bir kullanımı genelde sınıfları tanımlarken kullanırız.Niteliklerde interface,_internal, __private gibi bir yapi kullanabiliriz.
Uzunluklar
Satır uzunluğunu 80 karakterden aşağıda tutmalıyız.Bu hem goze hoş gelir hem de daha sonra o kodu okuyacak kişiye rahatlık sağlar.Çok fazla ozellikli yapılarda aşağıdaki gibi bir yapı kullanabilirsiniz.
def __init__(self, first, second, third, fourth, fifth, sixth): output = (first + second + third + fourth + fifth + sixth)
Yatık çizgiyi() mumkun olduğunda son çare olarak kullanın.Hatta hiç kullanmayın.
VeryLong.left_hand_side \ = even_longer.right_hand_side()
Birleşik ifadeler
Burada çok fazla kişi yanlış yapıyor.Aşağıda olması ve olmaması gereken iki durum var.Gorduğunde çok daha rahat anlayacaksınız.
Doğru
if foo == 'blah': do_something() do_one() do_two() do_three()
Yanlış
if foo == 'blah': do_something() do_one(); do_two(); do_three()
Docstrings ve Yorumlar
Docstings = Kodların nasıl kullanılacağını anlatır
Yorumlar = Niçin ve nasıl çalışacağını anlatır
Bu konuda gerçekten çok onemli.Çunku birçok kişi fonksiyonların veya sınıfların nasıl çalışacakları ile nasıl kullanılacakları arasındaki farkı karıştırabiliyor.Burada bilmemiz ve uymamız gerekenler PEP 257‘de anlatılmış.
Değişken Değişimleri
Python’un diğer dillerden ne kadarda ustun olduğunu gostermek için sadece iki ornek kod veriyorum.Bunların ikisi de aynı işi yapıyor ve değişkenlerin değerlerini değiştiriyor.
Diğer diller
temp = a a = b b = temp
Python
b, a = a, b
3 satır oldu sana tek satır ? Bu olay Pythondaki bana en fantastik olgulardan birisi olan demetlerin bir ozelliği.Paketleme ve yeniden açma diye bilinir.Çok daha fazla bilgi için istihzaya bakabilirsiniz.
İnteraktif “_”
Bu benim birkaç yerde gorup uzerine gidince oğrendiğim gerçekten çok faydalı bir durum.Kısaca çağırdığımız fonksiyonlar geçici olarak _ isminde tutuluyor.Başta ilginç geliyor ancak kullanım sırasında olayın farkına varıyorsunuz.
>>> 1 + 1 2 >>> _ 2
String Oluşturma
Benim yaptığım en buyuk hatalardan birisi de yeni bir string oluşturacağımız zaman kullandığım metoddu.İlk ornek benim onceleri yaptığım, ikinci ornek ise olması gereken ve bundan sonra yapacağım metod.
colors = ['red', 'blue', 'green', 'yellow'] result = '' for s in colors: result += s
Yerine
result = ''.join(colors)
Ne kadar da basit ve tek satırmış değil mi.
Yukarıda yazdıklarım Python için guzel kod yazma aşamalarının sadece ufak bir kısmı.Bu konuda internette yapacağınız araştırmalarda çok daha fazla kaynak bulabilirsiniz.Örneğin bir Django kullanıcısı iseniz bu konuda stackoverflow’da çok guzel bir liste var.Aynı şekilde Python için yapılmış olanları da var.Python’un offical sitesinde de harika kaynaklar var.Özellikle benim tavsiyem iyice PEP 8 mantığını kavramak.Daha sonra zamanla devamı gelecektir.
Not:Alıntıdır
Kaynak:Halitalptekin.com -
visual studio yu şu makaleyle niye çok sevdiğimi sanıyorum ki bir kez daha iyi anladım.:D
-
FCN bunu yazdı
visual studio yu şu makaleyle niye çok sevdiğimi sanıyorum ki bir kez daha iyi anladım.:D
niye ki la :D