Python __slots__
__slots__
__slots__ , programın içinde dinamik olarak üretilmesini istemediğimiz objeleri bu çatı altına yerleştiririz.
Ayrıca özelliklere daha hızlı erişirler.
Nesnelerin(objects) bellekte kapladığı alanı azaltırlar.
Ayrıntılı bilgi için Usage of __slots__ sayfasını ziyaret ediniz.
Örnek Olarak:
class KARE(object):
__slots__ = ('w','l')
def __init__(self, width, length):
self.w = width
self.l = length
def alan(self):
if self.w == self.l:
return self.w * self.l
else:
return "Kenar uzunlukları aynı değeri almalı"
if __name__ == '__main__':
temp = KARE(4,4)
print(temp.alan())
#Eğer koda deneme ile erişilmek istenirse:
#NOT: sadece ek bilgi olarak eklendi.
t = temp.deneme
Eğer __slots__ kullanmasaydık sonuç aşağıdaki gibi döndürülecekti:
class KARE(object):
global w,l
def __init__(self, width, length):
self.w = width
self.l = length
def alan(self):
if self.w == self.l:
return self.w * self.l
else:
return "Kenar uzunlukları aynı değeri almalı"
if __name__ == '__main__':
temp = KARE(4,4)
print(temp.alan())
temp.deneme = 45
print(temp.deneme)
Bu kodları Linux ta çalıştırmak için .py uzantılı bir dosya oluşturun.
denek.py adlı dosyayı çalıştırılabilir hale getirin.
Bunun için chmod 755 denek.py veya chmod +x denek.py kodlarını terminalde çalıştır.
Son olarak ./denek.py veya "Permission denied" hatası ile karşılaşırsanız sudo ./denek.py yazarak çalıştırınız. Ek olarak #!/usr/bin/python kodunu yazdığınız kod sayfasında ilk satıra eklerseniz python kütüphanesini yine kullanabilirsiniz. Linux içinde herhangi bir kodlama diliyle çalışılırken veya scriptle bu yöntem çok sık kullanılır.
Yorumlar
Yorum Gönder