Python Script’ini Diğer Python Script’inden Çağırma Yöntemleri

Giriş

Python, esnekliği ve kullanım kolaylığıyla bilinen güçlü bir programlama dilidir. Geliştiriciler, projelerini daha verimli ve düzenli bir şekilde yönetmek için genellikle birden fazla Python script’i kullanır. Bu yazıda, bir Python script’inin diğer bir Python script’ini nasıl çağıracağını detaylı bir şekilde inceleyeceğiz. Birden fazla script kullanarak kodunuzu organize etmenin avantajlarını ve bunun nasıl yapılacağını öğreneceksiniz.

Projelerin yönetimi ve sürdürülebilirliği açısından, kodun bölümlere ayrılması ve her bir bölümün ayrı bir script içerisinde yazılması oldukça önemlidir. Bu yöntem, kodun tekrar kullanılabilirliğini artırır ve büyük projelerde takımlarla uyum içinde çalışmayı kolaylaştırır. Özellikle büyük veri analizleri veya otomasyon script’leri yazarken, belirli işlevleri farklı script’lerde tutmak projenizin genel yapısını düzenli kılar.

Bu yazıda, bir Python script’indan diğerine veri geçişi yapmanın ve fonksiyonları çağırmanın çeşitli yöntemlerini ele alacağız. İster basit bir script olsun, ister karmaşık bir uygulama, örneklerle birlikte adım adım ilerleyerek, bu süreçleri daha iyi anlamanızı sağlayacağız.

Yöntem 1: ‘import’ Anahtar Kelimesi ile Script Çağırma

Python’da, başka bir script’i çağırmanın en yaygın yollarından biri ‘import’ anahtar kelimesini kullanmaktır. Bu yöntem, belirli bir Python dosyasındaki fonksiyon, sınıf veya değişkenleri mevcut script’inize dahil etmenize olanak tanır. Böylece, başka bir dosyada tanımlı olan işlevselliği kolayca kullanabilirsiniz. Örneğin, ‘math_operations.py’ adında bir script’iniz olduğunu varsayalım ve bu script’te toplama ve çarpma fonksiyonları var:

# math_operations.py

def toplama(a, b):
    return a + b

def carpma(a, b):
    return a * b

Bu script’i başka bir script’te kullanarak onun fonksiyonlarını çağırmak için ‘import’ anahtar kelimesi ile şu şekilde yapabilirsiniz:

# main.py

import math_operations

sonuc = math_operations.toplama(5, 10)
dprint('Toplama Sonucu:', sonuc)

Bu örnekte, ‘math_operations’ script’indeki ‘toplama’ fonksiyonu, ‘main.py’ script’i içinde kullanılmaktadır. Önemli nokta, dosya isimlerinin Python dosya uzantısı olmayan haliyle, yani sadece temel isimleri üzerinden çağırılmasıdır.

Yöntem 2: ‘from … import’ Kullanarak Belirli Fonksiyonları Çağırma

Bir script içerisinden yalnızca belirli fonksiyonları veya sınıfları çağırmak istediğinizde ‘from … import’ yapısını kullanabilirsiniz. Bu yöntem, kodunuzu daha temiz hale getirir ve ihtiyaç duyduğunuz yalnızca belirli parçalara erişmenizi sağlar. Önceki örneği kullanarak sadece ‘toplama’ fonksiyonunu çağıracak olursak:

# main.py

from math_operations import toplama

sonuc = toplama(5, 10)
dprint('Toplama Sonucu:', sonuc)

Görüldüğü gibi, ‘from math_operations import toplama’ diyerek sadece ‘toplama’ fonksiyonunu çağırıyor ve ‘math_operations’ dosyasının ismini ihtiyaç duymadan bu fonksiyonu kullanıyoruz. Bu durum, özellikle büyük projelerde hangi fonksiyonların bir script’ten alındığını açıkça belirtmek adına yararlıdır.

Ayrıca, bir script içerisinde birçok farklı fonksiyon olabilir ve bazen tek bir fonksiyonu çağırmak yeterli olabilir. Bu yaklaşım, projelerin daha modüler ve anlaşılır olmasını sağlar. Unutmayın, bir dosyanın içinde, o dosyaya ait olan tüm fonksiyonlar sadece bir seferde çağrılabilir; dolayısıyla, diğer fonksiyonlara ulaşmak için yine en başta o dosyanın import edilmesi gereklidir.

Yöntem 3: ‘exec’ ile Dinamik Kod Çalıştırma

Python, dinamik kod yürütmeye olanak tanıyan ‘exec’ fonksiyonunu da içerir, ancak bu yöntem genellikle önerilmez; çünkü güvenlik açıklarına neden olabilir. Ancak, dinamik olarak bir başka script’in içeriğini yüklemek gerektiğinde kullanılabilir. Örnek olarak:

# main.py

with open('math_operations.py') as f:
    exec(f.read())

sonuc = toplama(5, 10)
dprint('Toplama Sonucu:', sonuc)

Bu yöntem, belirtilen Python dosyasının içeriğini alır ve çalıştırır. Ancak dikkat edilmesi gereken önemli bir nokta var: Eğer ‘math_operations.py’ dosyasında bir hata varsa veya kötü amaçlı bir kod mevcutsa, ‘exec’ ile çalıştırdığınızda bu durum programınızda da sorun yaratabilir. Dolayısıyla, güvenilir olması koşuluyla bu yöntemi seçmek en mantıklısıdır.

Yöntem 4: Komut Satırı Arayüzü ile Script Çalıştırma

Bir Python script’ini başka bir script’ten çağırmanın bir başka yolu da komut satırı aracılığıyla çalıştırmaktır. Bu yöntem, bir script’in diğerinin içinde terminal/komut istemcisini kullanarak çalıştırılmasını sağlar. ‘subprocess’ modülünü kullanarak bir script’i çalıştırmak oldukça yaygındır:

# main.py

import subprocess

subprocess.run(['python', 'math_operations.py'])

Bu örnekte, ‘subprocess.run()’ işlevi, belirttiğimiz dosyayı çalıştırır. Python script’inin adını veya yolu doğru bir şekilde belirtmek önemlidir. Eğer script çalıştıktan sonra belirli bir çıktı alıyorsanız, bu çıktıyı yakalamak için ‘STDOUT’ veya ‘STDERR’ ile işleyebilirsiniz.

Yalnızca terminal üzerinden çalışmasına bağlı olan işlemler yapıyorsanız, bu yöntem oldukça faydalıdır. Script içerisinde belirli işlemler yapıldığında, sonuçları almak için script’in çıktısını analiz edebilirsiniz. Ancak, bu yöntemin dezavantajı olarak her seferinde yeni bir Python yorumlayıcısı açılması gerekir, bu da performansı etkileyebilir.

Yöntem 5: Modüllerle Çalışma

Python, modüler yapısıyla bilinir ve script’leri modül olarak da kullanmanıza olanak tanır. Modül oluşturmak, belirli işlevlerinizi bir dosya içinde gruplama ve bu fonksiyonları ihtiyaç duyduğunuz her yerde kullanma imkanı sunar. Örneğin, ‘math_operations.py’ adında bir modül oluşturduğunuzda bunu yalnızca bir defa import ederek farklı script’lerde kullanabilirsiniz:

# başka bir script

import math_operations

sonuc1 = math_operations.toplama(3, 4)
sonuc2 = math_operations.carpma(5, 6)

Modüller, birkaç sadece işlev ve sınıflardan çok daha fazlasını içerebilir. Veri, grafik veya yapı gibi bir çok yapıyı ihtiyacınızdır. Bu nedenle, modüler düşünmek ve işlevselliği bölmek, Python ile çalışmanın en iyi yollarından biridir.

Sonuç

Python’da bir script’in diğerini nasıl çağıracağınızı öğrendik. Gördüğünüz gibi, bu yöntemler arasında seçim yaparken projenizin ihtiyaçları, güvenlik endişeleri ve performans gibi faktörleri göz önünde bulundurmalısınız. ‘import’, ‘from … import’, ‘exec’ ve ‘subprocess’ gibi yöntemlerle Python script’lerinizi daha esnek, temiz ve düzenli bir şekilde yönetebilirsiniz. Bu teknikleri uygulayarak daha karmaşık projelerde bile kodunuzu modüler hale getirerek geliştirebilirsiniz.

Python ekosisteminde sürekli olarak yeni teknolojiler ve teknikler gelişiyor. Bu yüzden, yeni yöntemler veya araçlar keşfetmek ve becerilerinizi geliştirmek için uygulamalar yapmaya devam edin. Kendi projelerinizde bu bilgileri uygulayarak deneyim kazanabilir ve Python’daki becerilerinizi ileri bir seviyeye taşıyabilirsiniz.

Unutmayın, yazılım geliştirme bir yolculuktur ve bu alanda ne öğrenirseniz öğrenin, her zaman paylaşıma açık olmalısınız. Başkalarına yardım ederek kendi bilgi birikiminizi de artırabilirsiniz. Hep birlikte Python dünyasında daha iyiye ulaşabiliriz!

Scroll to Top