ibrahim ozturk

Entrepreneur, Tech CTO, Software Developer, Electronics Engineer, Author



mqTranslate hatası

Category : General

Sadece Ingilizce versiyonu bulunmaktadır!

Sorun – Fatal error: Allowed memory size …

Category : General, WordPress

WordPress sürümünü 4.9.2 ye güncellerken aşağıdaki gibi bir hataya birden düştü. Admin panel artık erişilemez olmuştu. Bundan sonrasını server phpmyadmin veya FTP üzerinden direkt halletmem gerektiğinin farkındaydım.
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 122880 bytes)
Sebebini anlamaya çalışırken ilk etapta varsayılan olarak memory limitlerini değiştirmeyi denemek istedim. Bunu wp-config içerisindeki aşağıdaki değişiklikle sağladım :

define (‘WP_MEMORY_LIMIT’, ‘128M’);

Bir değişiklik olmadığından public_html klasöründeki .htaccess dosyası üzerinden de aşağıdaki işlemi sağladım.

php_value memory_limit 128M

Fakat yine de admin panele ulaşamıyordum. Burada memory artırılırsa dahi pansuman çözüm olduğunu asıl sorunu bulmanın daha önemli olduğunu düşünerek sorunun kaynağını aramaya devam ettim. Bunun için tüm eklentileri pasif yaptım ve tekrar admin panele girmeye çalıştığımda artık girebiliyordum. Sorun eklenti ve güncelleme çakışmasından olduğu kesindi. Fakat hangi eklentiden kaynaklandığını anlamaya giriştiğimde sorunun MarketPress eklentisinden kaynaklandığını farkettim.
Eklentilerin tamamını pasif edebilmek için oldukça basit bir yolu seçerek

/httpdocs/wp-content/plugins

yerine

/httpdocs/wp-content/_plugins

Değiştirme sağladım. Bunu diğer eklentileri pasif ederken de uyguladım.

Python’da self nedir ?

Category : Kod, Python

Yaklasik 4 yil once Python ile birseyler yapmaya basladigimda bazi kavramlar kafami oldukca fazla karistirmisti. Bunun sebebi aslinda OOP temelli ciddi bir projeye o gune kadar ugrasmis oldugum Java ve C++ programlama dilleri ile imza atmamis olmamdi. Her ne kadar is goren ve problemi cozen isler yapiyor olsam da OOP altyapisindan genellikle uzak kaliyordum. Fakat Python ile giristigim isler beni OOP tarafina bir nevi mecbur kildi ve Python’daki bazi kavramlari daha detayli ogrenmeye kalkismistim. Aslinda OOP tarafinda ciddi bir temeli olan birileri icin Python’in getirdigi kavramlar cok farkli ya da yeni degil.
Bu bahsettigim kavramlarin basinda genellikle cogu sinifa ait metotlarin ilk parametresi olan self parametresi geliyor. Fakat bu kavramlari aciklamaya daha kolay anlasilacagindan ornek uzerinden devam etmek istiyorum. Bunun icin OOP orneklerinde siklikla kullanilan musteri sinifi uzerinden asagidaki kod ile durumu orneklemek istiyorum.

'''
Created on 14 Jan 2017
@author: Ibrahim Ozturk
@author: www.ozturkibrahim.com
'''

class Musteri(object):
    """Bir banka musterisinin hesabindaki tutari kontrol etme. Musteri sinifi
    asagidaki ozelliklere sahiptir : 
    Ozellikler:
        isim   : Musteri ismini tutan string turunde parametre
        bakiye : Musterinin hesabinda halihazirdaki bakiyeyi gosteren float tipinde parametre. 
    """

    def __init__(self, isim, bakiye=0.0):
        """Girilen isim ile ve baslangic bakiyesi olarak sifiri koyan musteriyi olusturur."""
        self.isim    = isim
        self.bakiye  = bakiye

    def paraCek(self, tutar):
        """Hesaptan ilgili tutarin cekilmesinin ardindan yeni bakiyeyi doner."""
        if tutar > self.bakiye:
            raise RuntimeError('Bakiye yetersiz.')
        self.bakiye -= tutar
        self.bilgiGoster()
        return self.bakiye

    def paraYatir(self, tutar):
        """Hesaba ilgili tutarin yatirilmasinin ardindan yeni bakiyeyi doner.."""
        self.bakiye += tutar
        self.bilgiGoster()
        return self.bakiye
    
    def bilgiGoster(self):
        """Ilgili musterinin ismini ve hesap bakiyesini ekrana basar.."""
        print(self.isim + " isimli musteriye ait bakiye >> " + str(self.bakiye) + " TL'dir.")
    
musteri1 = Musteri('Ibrahim Ozturk', 500.0)
musteri1.paraCek(100.0)

Her ne kadar self Python acisindan ozel bir karsiligi olmasa da Python programcilari arasinda yazili olmayan yerlesik bir kural gibidir. Self sinif icerisinde metotlara, parametrelere ulasmak icin siklikla kullanilabilinir.

musteri1 = Musteri('Ibrahim Ozturk', 500.0)
 

Ornegin, bu satir ile Musteri sininifin gerceklenmis hali olan musteri1 nesnesi olusturulmus olmaktadir. Ilgili hesaptan para cekmek icin ise

musteri1.paraCek(100.0)
 

kullanilacaktir. Cekimin ardindan ekrana son bakiye sinif icerisindeki baska bir metodu cagirarak saglanmaktadir.

self.bilgiGoster()
 

Self paramatresi ile ise ilgili sinifa ait metotlari ya da parametreleri kullanacaginiza isaret edersiniz. Bu satir aslinda bir nevi Musteri.bilgiGoster() gibi birseydir.
Diger yandan self.isim ve self.bakiye ile de sinif icerisindeki global degiskenlere tum metotlar icerisinden erisim saglanmaktadir.
Ozetle bu kisa yazimizda self parametresine cok genel bir bakis ile orneklemeye ve kullanim yerlerinden birini gostermeye calistim. Eger sorulariniz olursa asagiya yorum olarak birakarak aktarabilirsiniz.

Keywords : python, programlama, self, nesne, sinif, self keyword, self sozcugu, kelimesi, oop programlama,


error: Content is protected !!