Kayıt Ol

Giriş


Şifremi Kaybettim

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

soru ekleme

You must login to ask question.

Giriş


Kayıt Ol

Merhaba, kayıt formu üzerinden kayıt olabilirsiniz. Fakat sosyal medya ile kayıt olmanızı önermekteyiz.

if __name__ == “__main__”: nedir? Ne demektir?

if __name__ == “__main__”: nedir? Ne demektir?

Python kodları okurken çok karşımıza çıkan bu kod bütününü hiç sorguladınız mı?

Sayfalarca kodun en sonuna yazılır,
if __name__ == “__main__”:     ile başlar ve cümlenin noktası gibi sayfalarca kodu bitirir. Neden bunu yaptığımızı biraz sorgulamamız gerekir.

 

IDLE’imiz Python kodlarını okurken, bildiğiniz gibi yukarıdan aşağıya bir sırayla uygular ve bu sıraya göre programımızı çalıştırır. Bu da algoritmalarımızı/modellerimizi bu sıraya göre dizmemiz gerektiğini gösterir. Fonksiyonlarımızı bu sıraya göre tanımlar ve bu sıraya göre çalıştırmasını bekleriz.

 

Indentation(girinti) seviyesine göre bizim fonksiyonlarımız ve kendi işlemlerini yapmakta ve indentation(girinti) sırasını da takip ederek işlemleri yapmaktadır. Biraz düşünelim ve neden library’lerdeki her Python dosyasının sonunda bu kodun olduğunu sorgulayalım. Ya library’lerimiz de indentation kuralına uymak zorunda ise?

 

 

Biraz görselleştirmek için, şöyle bir sıralama çizebiliriz.

#Bu dosyanın adı hayat.py

class isguc():

      def yemekyap(mercibekcorbasi):

           if(a):
else(b):

HAYAT.PY => CLASS => DEF => IF,ELSE

IDLE’ımız kodlarımızı bu sırayla okuyor. Bu hiyerarşi ile ilerliyor her şey. Peki bu yazdığımız hayat.py’ı library olarak başka bir kodda kullansak?

# Bu dosyamızın adı Memat.py

import hayat

is = isguc()

print(isguc.yemekyap(mercimekcorbasi))

Buradaki hiyerarşi ise; Hayat.py,Memat.py => PRINT

Aslında import ettiğimiz kütüphanenin de hiyerarşi olarak bulunduğumuz klasörden daha geride olması gerekiyor. Program çalışırken Hayat.py => Memat.py => PRINT sırasını takip etmeli. Bunun nedeni ise elbette ki programımızın önce library’lerden fonksiyonları çekip, daha sonra kodlarımızda bunu kullanmak için önce library’leri okumamız gerektiğinden aslında. Yani biz   if __name__ == “__main__”:’ i Hayat.py’in sonuna ekleyerek .py dosyaları arasında hayat.py’ın daha önce okunması gerektiğini sanki bir indentation seviyesi eklermiş gibi gösteriyoruz. Zaten Memat.py’ı bu halde çalıştırırsak tahmin ettiğimiz gibi bir çıktı vermeyecektir. if __name__ == “__main__”:’ i hayat.py’nin sonuna eklersek library’mizi başarılı bir şekilde diğer kodlarımıza import etmiş oluruz.

Hakkında Mehmet Burak SayıcıÇırak

Yorum ( 1 )

  1. Bence açıklama yeterli olmamış.

Bir Cevap Yaz

Captcha Captcha güncellemek için resime tıkla