folder Tahribat.com Forumları
linefolder Python
linefolder Python Kod Yazımı (Makale)



Python Kod Yazımı (Makale)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo

    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.

    PixelBlocks/001/Python

    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

    1. Her girinti için 4 boşluk kullanılması lazımdır.
    2. Hard tab kullanımından kaçınmak ve bu tabları boşluklar ile karıştırmamak lazım.
    3. Fonksiyonlar arasına bir satır, sınıflar arasına da iki satır koymak uygundur.
    4. Kullandığınız sozluk, liste, demet ve arguman listesinde virgulden sonra bir boşluk koymak gerekir.
    5. Karşılaştırma ve atamalarda aralara boşluk koyulmalıdır.(if meyve==elma: yerine if meyve = elma: )
    6. Parantezlerden once boşluk koyulmaz.
    7. 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

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    visual studio yu şu makaleyle niye çok sevdiğimi sanıyorum ki bir kez daha iyi anladım.:D 

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo
    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 

Toplam Hit: 2542 Toplam Mesaj: 3