Python import kullanımı
*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 math
modülünü belleğe yüklemek yerine sadece pi
yi 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.py
diye 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…