0
user Programlama Akademi
08-01-2025 11:38 AM
Python

Python'3 de Modül Nasıl İçe Aktarılır

Giriş (Introduction)

Python programlama dili çeşitli yerleşik fonksiyonlar (built-in functions) ile birlikte gelir. Bu fonksiyonlar arasında şunlar bulunur:

  • print() ifadesini yazar.
  • abs() bir sayının mutlak değerini döndürür.
  • int() başka bir veri türünü tam sayıya çevirir.
  • len() bir dizinin veya koleksiyonun uzunluğunu döndürür.

Bu yerleşik fonksiyonlar sınırlıdır, ancak daha gelişmiş programlar yazmak için modüllerden (modules) faydalanabiliriz.

Modüller, Python kodundan oluşan .py dosyalarıdır. Herhangi bir Python dosyası bir modül olarak referans alınabilir. Örneğin, hello.py adlı bir Python dosyası, Python komut satırı yorumlayıcısında (Python command line interpreter) veya başka Python dosyalarında kullanılabilecek olan hello adlı bir modül olur.

Modüller, diğer Python .py dosyalarında veya Python komut satırı yorumlayıcısında referans alabileceğiniz fonksiyonlar, sınıflar (classes) ve değişkenler (variables) tanımlayabilir.

Python’da modüllere erişmek için import ifadesi kullanılır. Bunu yaptığınızda, modülün kodunu çalıştırırsınız ve tanımların kapsamlarını koruyarak mevcut dosyanızda bu tanımları kullanabilirsiniz.

Python bir hello adlı modül içe aktardığında, yorumlayıcı önce hello adlı bir yerleşik modül arayacaktır. Eğer bir yerleşik modül bulunmazsa, Python yorumlayıcı sys.path değişkeninden aldığı dizinler listesinde hello.py adlı bir dosya arar.

Bu öğretici, modülleri kontrol etme ve yükleme, modül içe aktarma ve modüllere takma ad verme işlemlerini adım adım inceleyecek.


Modülleri Kontrol Etme ve Yükleme (Checking For and Installing Modules)

Python Standart Kütüphanesinde (Python Standard Library) birçok yerleşik modül bulunur; bu kütüphane sistem işlevlerine erişim sağlar veya standart çözümler sunar. Python Standart Kütüphanesi, her Python kurulumunun bir parçasıdır.

Bilgi: Bu öğreticiyi takip etmek için, python3 komutunu çalıştırarak yerel sisteminizde Python etkileşimli kabuğunu (Python interactive shell) açın. Ardından örnekleri >>> istemcisinden sonra ekleyebilir, yapıştırabilir veya düzenleyebilirsiniz.

Bu Python modüllerinin çalışmaya hazır olup olmadığını kontrol etmek için, yerel Python 3 programlama ortamınıza veya sunucu tabanlı programlama ortamınıza girin ve komut satırında Python yorumlayıcısını başlatın:

$ python

Yorumlayıcı içinde, belirtilen modülün çağrılmaya hazır olduğundan emin olmak için import ifadesini çalıştırabilirsiniz, örneğin:

>>> import math

math yerleşik bir modül olduğundan, yorumlayıcı görevi herhangi bir geri bildirim olmadan tamamlayarak komut istemine dönecektir. Bu, math modülünü kullanmaya başlamak için başka bir işlem yapmanıza gerek olmadığı anlamına gelir.

Kurulu olmayabilecek bir modülle import ifadesini çalıştıralım, örneğin 2D çizim kütüphanesi (2D plotting library) matplotlib:

>>> import matplotlib

Eğer matplotlib kurulu değilse, şöyle bir hata alırsınız:

Çıktı:

ImportError: No module named 'matplotlib'

Python yorumlayıcısını CTRL + D ile devre dışı bırakabilir ve ardından pip ile matplotlib yükleyebilirsiniz.

Ardından pip kullanarak matplotlib modülünü yükleyebiliriz:

$ pip install matplotlib

Yüklendikten sonra Python yorumlayıcısında import matplotlib ifadesini kullanarak herhangi bir hata olmadan modülü içe aktarabilirsiniz.


Modülleri İçe Aktarma (Importing Modules)

Bir modüldeki fonksiyonları kullanmak için, import ifadesiyle modülü içe aktarmanız gerekir.

Bir import ifadesi, import anahtar kelimesi (import keyword) ve modülün adından oluşur.

Python dosyasında bu ifade, herhangi bir shebang satırının veya genel açıklamaların (general comments) altında en üstte bildirilir.

Yani, my_rand_int.py adlı Python program dosyasında, rastgele (random) sayılar oluşturmak için random modülünü şu şekilde içe aktarırız:

import random

Bir modül içe aktardığımızda, onu mevcut programımızda ayrı bir ad alanı (namespace) olarak kullanılabilir hale getiririz. Bu, fonksiyona nokta gösterimi (dot notation) ile, [modül].[fonksiyon] şeklinde başvurmamız gerektiği anlamına gelir.

Örnekteki random modülü ile, bu aşağıdaki gibi bir fonksiyon çağrısı olabilir:

  • random.randint() fonksiyonu, bir rastgele tam sayı döndürmek için çağrılır.
  • random.randrange() fonksiyonu, belirtilen aralıktan rastgele bir eleman döndürmek için çağrılır.

Bir for döngüsü (for loop) oluşturarak random modülünün bir fonksiyonunu my_rand_int.py programımızda nasıl çağıracağımızı gösterelim:

import random

for i in range(10):
    print(random.randint(1, 25))

Bu küçük program, ilk satırda random modülünü içe aktarır ve ardından 10 eleman ile çalışan bir for döngüsüne geçer. Döngü içinde, program 1 ile 25 (dahil) arasındaki rastgele bir tam sayıyı yazdıracaktır. 1 ve 25 tam sayıları, random.randint() fonksiyonuna parametre olarak geçer.

Programı python my_rand_int.py komutuyla çalıştırdığımızda, 10 rastgele tam sayı içeren bir çıktı alacağız. Bunlar her seferinde farklı olacaktır, ancak şöyle bir şey üretebilir:

Çıktı:

6  
9  
1  
14  
3  
22  
10  
1  
15  
9

Tam sayılar 1’in altına düşmez veya 25’in üzerine çıkmaz.

Birden fazla modülden fonksiyon kullanmak isterseniz, birden fazla import ifadesi ekleyebilirsiniz:

import random
import math

Birden fazla modülü virgülle ayırarak import random, math şeklinde içe aktaran programlar görebilirsiniz; ancak bu, PEP 8 Stil Kılavuzu (PEP 8 Style Guide) ile tutarlı değildir.

Ekstra modülümüzü kullanmak için, programa math modülünden pi sabitini ekleyebiliriz ve yazdırılan rastgele tam sayı sayısını azaltabiliriz:

import random
import math

for i in range(5):
    print(random.randint(1, 25))

print(math.pi)

Programı çalıştırdığımızda, pi sayısının yaklaşık değeriyle son satırda aşağıdaki gibi bir çıktı alacağız:

Çıktı:

18  
10  
7  
13  
10  
3.141592653589793

import ifadesi, bir veya daha fazla modülü Python programınıza içe aktarmanıza ve o modüllerdeki tanımları kullanmanıza olanak tanır.


from … import Kullanımı

Bir modüldeki öğelere programınızın ad alanı (namespace) içinde başvurmak için from … import ifadesini kullanabilirsiniz. Modülleri bu şekilde içe aktardığınızda, işlevlere nokta gösterimi (dot notation) kullanmak yerine doğrudan adlarıyla başvurabilirsiniz.

Bu yapıda, hangi tanımlara doğrudan başvurmak istediğinizi belirtebilirsiniz.

Diğer programlarda, import ifadesinin modülde tanımlanan her şeye joker karakter (*) kullanarak başvurduğunu görebilirsiniz, ancak bu kullanım PEP 8 tarafından önerilmez.

Önce random modülünden randint() adlı belirli bir işlevi içe aktarmayı gözden geçirelim:

from random import randint

Burada önce from anahtar kelimesini, ardından modül için random ifadesini kullanıyoruz. Sonrasında import anahtar kelimesiyle kullanmak istediğimiz belirli işlevi çağırıyoruz.

Şimdi, bu işlevi programımızda kullanırken, artık random.randint() gibi nokta gösterimiyle yazmayacağız; bunun yerine yalnızca randint() olarak yazacağız:

from random import randint

for i in range(10):
    print(randint(1, 25))

Programı çalıştırdığınızda, daha önce aldığımız çıktıya benzer bir sonuç alırsınız.

from … import yapısını kullanmak, bir modülün tanımlı öğelerine programımızın ad alanı içinde doğrudan başvurabilmemizi sağlar ve nokta gösteriminden kaçınmamıza olanak tanır.


Modüllere Takma Ad Verme (Aliasing Modules)

Python’da modüllerin ve işlevlerinin adlarını as anahtar kelimesiyle değiştirebilirsiniz.

Bir adı değiştirmek isteyebilirsiniz, çünkü programınızda zaten aynı adı başka bir şey için kullanıyor olabilirsiniz, başka bir modül aynı adı kullanıyor olabilir veya sıkça kullandığınız uzun bir adı kısaltmak isteyebilirsiniz.

Bu ifadenin yapısı şu şekildedir:

import [module] as [başka_ad]

my_math.py adlı program dosyamızda math modülünün adını değiştirelim. math modülünün adını m olarak kısaltacağız. Değiştirilmiş programımız şöyle görünecektir: my_math.py

import math as m

print(m.pi)
print(m.e)

Program içinde artık pi sabitine math.pi yerine m.pi olarak başvuruyoruz.

Bazı modüller için, takma ad kullanımı yaygındır. matplotlib.pyplot modülünün resmi dokümantasyonu, plt takma adının kullanılmasını önerir:

import matplotlib.pyplot as plt

Bu, programcıların modüldeki işlevlere daha kısa plt ifadesini ekleyerek başvurmalarını sağlar; örneğin, plt.show() gibi. Bu takma ad içe aktarma ifadesini.


Sonuç

Modülleri içe aktardığımızda, Python’da yerleşik olmayan işlevleri çağırabilme imkanına sahip oluruz. Bazı modüller Python ile birlikte kurulur, bazılarını ise pip ile kurarız.


Lisa Tagliaferri tarafından yazılan How To Import Modules in Python 3 a Programming makalesinin düzenlenmiş çevirisi


Daha Fazla Oku:


Bu Makaleyi Paylaş

Yorumlar

yorum Yap