Python import kullanımı

Hasan Gökçe
2 min readApr 18, 2021

*Okumadan önce: Bu sayfa taslak bir sayfa olup belirli periyotlarda güncellenmektedir.

Haydi başlayalım!

Bence bu konu çok önemli. Birinci nedeni python kodu yazar yazmaz sistemin hazır modüllerini kullanmak gerekir. İkincisi ise projeniz büyüdüğünde yazdığınız kodu parçalara bölmek istediğinizde olmazsa olmazdır. Diğer yandan diğer dillerde de benzer yapıların olduğunu belirtmekte fayda var:

# c dilinde
include <stdio.h>
include "header_file"
# javascript
import "module-name";
import { export1 , export2 } from "module-name";
# python
import math
from math import pi
# go
package morestrings
import "testing"
# c#
using System;
using System.Xml;
# java
package pack;

İkisi arasındaki fark nedir?

Konuyu anlamak için bir örnekle başlayabiliriz. Bence konuyu 1–2 ufak örnekle anlamak mümkün, diğer detaylar için ise yeri geldikçe kaynaklara başvurulabilir.

Soru

import math

ile

from math import *

arasındaki fark nedir ?

Cevap

Cevabımızı çevre hesabı yaparak bir örnekler verelim.

Birincisinde python içerisinde hazır bir sabit olan pi yi kullanmak için başına math yazmalıyız.:

import mathcevre = 2 * math.pi

İkincisinde başına herhangi bir isim eklemeden doğrudan pi sabitini kullanabiliriz:

from math import *cevre = 2 * pi

Selective import

Çok büyük bir python dosyamız var. Ama buradan sadece ufak bir sabiti kullanmamız gerekiyor. Bu durumda selective import kullanmanın tam zamanı diyebiliriz. Yukarıdaki örnekte * koyarak aslında kullandık ama genelde bu kullanım türü çakışmalara neden olabileceğinden ne yaptığınızdan emin değilseniz dikkat etmeniz gerekir.

Yine yukarıdaki örnekten gidecek olursak tüm mathmodülünü belleğe yüklemek yerine sadece piyi kullanmak istediğimizde bu kod işimizi görecektir:

from math import pi# örnek
print(pi)

Eğer bilgisayarınızda python klasörünü açıp incelerseniz, aşağıdaki kodun hangi python dosyasını import ettiğini görebilirsiniz. Yine os.py içerisinde environ adlı bir nesne ( ya da method, fonksiyon, değişken, sabit, başka import ifadeleri) olduğunu da görebilirsiniz.

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

Bonus

Buradan yola çıkarak şunu yapabilirdik; örneğin; her bilgisayarı açtığımızda bazı programları kesin açarız. Mesela; notepad.exe, chrome.exe ve spotify.exe

program.pydiye bir python dosyası açıp içerisine şunları ekleyelim.

import subprocesschrome = run('chrome.exe')notepad = run('notepad.exe')spotify = run(‘spotify.exe’)

app.py python dosyası açıp bu kodu çalıştırdığımızda istenen sonuca ulaşabiliriz:

import program

ya da

from program import notepad

kodu ile istediğimiz programı çalıştırabiliriz. Bu arada yukarıdaki run kodu gerçek bir kod değildir ama gerçeğini yapmak isterseniz böyle bir stackoverflow örneği inceleyebilirsiniz.

Merak ettim!

Burada virgül kullanarak aynı satırda birden fazla program çağırabilir miydik? (from prgoram import notepad, chrome, spotify )

Official tutorial

https://docs.python.org/3/tutorial/modules.html

Not

Normalde bu tarz yazıları ingilizce yazardım. Fakat Samed Tanriverdi arkadaşımın tavsiyesi üzerine bügün Türkçe yazdım.

Sevgiler…

--

--