Beni iyi bir Python geliştiricisi yapan 5 Python numarası
Üç yıl sonra Python geliştiricisi olarak çalışmaya başladığımda, mevcut kod tabanından öğrenerek kod yazıyordum. Ben de hiçbir zaman çok okuyan biri olmadım. Bu, eğer onları bilseydim, beni daha iyi bir geliştirici yapacak olan kullanışlı python hilelerini bilmek söz konusu olduğunda ilerlememi geciktirdi.
Son 6 ayda Python okumaya ve uygulamaya her zamankinden daha fazla yatırım yaptım. En başından beri bilmem gereken birkaç piton hilesiyle karşılaştım. Bu yazımda bu hileleri paylaşacağım.
⚡1 — Lambdas Over Functions Kullanın
Çoğu zaman, bir kod gözden geçiricinin kodumdan şikayet etmek için kullandığı, ömrü boyunca yalnızca bir kez çağrılan bir python işlevini her zaman kullandığım zamandır. İncelemeyi yapan kişiyle yapılan konuşma, işlevde tek bir satır olduğunda çabucak garipleşti😥.
Her ikisi de burada python işlevleri yerine lambda kullanmayı düşünmenin nedenleridir . Lambda Python anahtar kelime anonim işlevini ilan için bir kısayol sağlar.
Lambda işlevleri, def anahtar sözcüğüyle bildirilen normal işlevler gibi davranır. Fonksiyon nesnelerinin gerekli olduğu her yerde kullanılabilirler. Örneğin, bir ekleme gerçekleştiren basit bir lambda işlevini şu şekilde tanımlarsınız:
>>> ekle = lambda x, y: x + y
>>> ekle(5, 3) 8
Bu numaradan önemli çıkarımlar, yalnızca bir kez çağrılan tek bir satır işlevi yazdığınızda, bunun yerine lambda işlevlerini kullanmayı düşünün. Bu daha pitonik olacak.
⚡2- Dekoratörleri Küçümseme
Hayatım boyunca tuhaf sembollerden hep korkmuşumdur. Bunlardan biri @ 😢 idi. Diyelim ki yöneticiniz size geldi ve proje sunucusu kodundaki 20 API’nin tümü için bir giriş günlüğü satırı uygulamak istiyor.
Ve yönetici bunu önümüzdeki 2 gün içinde üretime teslim etmeyi planladığı için, ya her API’nin kodunu yinelenen günlük satırlarıyla güncellersiniz ve hatta bu API’lerden birini bozarsınız.
Pekala, bu gerçekten içinde olmak istemeyeceğiniz bir turşu. Bunun yerine, genel bir @ print_log dekoratörünün kodunu yazabilir ve her API tanımının önüne yapıştırabilirsiniz. Örneğin,
ithalat günlüğü logging.basicConfig(filename='app.log', filemode='w', format='%(name)s - %(levelname)s - %(message)s')def print_log(fonk):
def log_decorator_wrapper():
"""günlük işlevi başlıyor"""
logging.warning("[UserLogin]:
Çağrılan API") return log_decorator_wrapper@print_log
@login("/login", method=["POST"])
def user_login():
---- Bazı API Mantığı ---
Sonra kodunuzu işleyecek ve bir fincan çay içebileceksiniz (Belki Assam çayını deneyin😋) ve rahatlayın.
⚡3- Döngü Yazarken Daha Pythonic Olun
Bir dizi yapılandırılmış veya yapılandırılmamış veri üzerinde yineleme yapmak, herhangi bir dilde çok yaygındır. Burada sunmak istediğim bir diğer gerçek ise, çoğumuz akademik çalışmalarımız sırasında python ve onun içsel yollarını hiç çok iyi incelemedik.
Java veya diğer programlama geçmişine sahip bir geliştirici hakkında dikkat edilmesi gereken bir şey, python’da döngüleri nasıl yazdıklarıdır. Örneğin, python ile ilk başladığımda yazdığım şey buydu –
my_list = ['Tom', 'Jerry']i = 0
iken i < len(my_list):
print(my_list[i])
i += 1
Şimdi, bu kod parçacığı çok basit görünüyor, ancak burada yorumcunuzun yorum yapabileceği bir sorun var (eğer o büyük bir python geek ise 🤭) –
Bu Pythonic görünmüyor — İnceleyen
Nedenini açıklayayım. İlk olarak, yukarıdaki kod bir indeks değişkeni i’nin kaydını tutar ve ardından bunu while döngüsünden sonra artırır.
İkincisi, my_list listesinin boyutunu almak için len() kullandı . Şimdi bunu aşağıda yapmanın daha Pythonic yollarına bir göz atalım –
i için, enumerate(my_list) içindeki öğe:
print("{}: {}".format(i, item)
Python, enumerate() kullanarak bir diziyi (bizim durumumuzda bir listeyi) yinelerken dizini takip etmenin dahili yollarına sahiptir . i indeks değişkenini izlemeye özen gösterecek ve otomatik olarak artıracaktır.
Bu şekilde öncekinden daha Pythonic görünüyor ve şimdi kod gözden geçireniniz bunu görmekten mutlu olacak ve kodunuzu ana şubeye gönderebileceksiniz. Ve belki bu sefer Nilgiri çayını 🍵 deneyin ve üşütün.
⚡4- Eski Dize Biçimlendirme Yollarını Kullanmayı Durdurun
Python’da kod yazmaya başladığımda, yüzde sembolleriyle dize biçimlendirme hala bir şeydi. Ve geliştiriciler olarak, mevcut kodlardan başka herhangi bir yerden daha fazlasını öğreniyoruz.
Bu yüzden kodumda dize biçimlendirme satırları oluşturmak için yüzde sembollerini kullanarak uyarladım. Şimdi, aşağıdaki bazı örnek kodlara bakarak bununla ilgili sorunun ne olduğunu konuşalım –
>>> 'Hey %s' % (isim)
'Hey Varun'
İster inanın ister inanmayın, bu tarz her zamankinden çok daha fazla yazmayı gerektiriyor. Python bu stili kullanmanın önemini azaltmıştır. En son sürümlerde kullanımdan kaldırılmamıştır, ancak şimdi dizeleri biçimlendirmenin daha iyi yolları var. Örneğin –
>>> 'Hey {}'.format(isim)
Hey Varun
Veya
>>> f'Hey {isim}'
Hey Varun
Yukarıdaki örnek, name değişkeninde saklanan bir dizenin nasıl yazdırılacağını gösterir . Bunların hatırlanması çok daha kolaydır ve ayrıca bir dizgiyi biçimlendirirken daha az sembolün bulunmasını gerektirir.
⚡5- VirtualEnv Kullanın Daha Fazla
Python paketlerini global olarak kurmak da bir güvenlik riski doğurabilir. Genel ortamı değiştirmek, genellikle süper kullanıcı (kök/yönetici) kimlik bilgileriyle pip yükleme komutunu çalıştırmanızı gerektirir.
Geliştiriciler olarak daha sık olarak, python ile çalışırken daha yeni paketler veya kitaplıklar ile test yapıyoruz. Ancak bu bağımlılıkları doğrudan proje ortamınıza kurmak gibi bir hata yapmak iyi bir fikir değildir. İşte neden –
Öncelikle hepimiz insanız ve projeyi test ekibine veya bir müşteriye hızlı bir güncelleme ile göndermek üzereysek veya belki bir süre için bu bağımlılığa ihtiyacınız yok diye kaldırmayı unutabiliriz.
İkincisi, docker gibi herhangi bir ortam veya araç kullanmıyorsanız, proje kurulumunun neden zaman aldığını takip etmek çok zor olacaktır, çünkü bir dahaki sefere kodunuzu yeni bir sunucuda çalıştırdığınızda ve import ifadesini kaldırmayı unutursunuz. Bu bağımlılığın sonucunda sunucu kodunu kırabilirsiniz.
Bu korkutucu, değil mi? Bunun yerine, yeni kitaplıklar veya bağımlılıklarla geliştirme yaparken Sanal Ortamları kullanmalısınız . Bu, geliştirme ortamınızı gerçek proje ortamından ayrı tutacaktır.
Aşağıdaki gibi basit bir komut çalıştırarak python’da venv kullanarak sanal bir ortam oluşturabilirsiniz –
$ python3 -m venv ./venv
Ortam oluşturulduktan sonra, bu komutu çalıştırarak bu yeni ortamı etkinleştirebilirsiniz –
$ kaynak ./venv/bin/activate
Artık bu ortama herhangi bir şeyi kolayca yükleyebilirsiniz, çünkü bu, küresel bağımlılıklarınızla izolasyon oluşturur. Virtual env hakkında daha fazla bilgiyi buradan okuyabilirsiniz
Makalenin orjinal kaynağını bu linkten okuyabilirsiniz