python - intermediate - 8 - Modules
Bir Program hep parçalara ayrılmalı, böylece hem yönetimi daha kolay olur, hem de güncelleme yapılması daha kolay olur.
Modüller ayrı olmalı-modulller birbirıyle alışveriş ederler
main modul programları icra eder
Hazır moduller de var, veya bunları kendimiz de yazabiliriz.
Modüller ve çeşitleri:
- Standart kütüphaneler:py.py.org veya npm : örnek: Django - pip ile kurulabilir
- üçüncü şahis modülleri :
import math # modul dahil etme
value = dir(math) # nath module`u icindeki alt fonksiyonlari listeler
val_help=help(math.sin) # sin fonksiyon`u konusunda help
print(val_help)
#
Help on built-in function sin in module math:
sin(x, /)
Return the sine of x (measured in radians).
kullanimi:
import math # modul dahil etme
# value = dir(math)
# valueh=help(math.sin)
valsqrt = math.sqrt(49)
print(valsqrt)
yontem 2
from math import*
valuea = factorial(5) # 120 - artik math.factorial yazmak gerekmiyor
valueb = sqrt(5) # 2.23606797749979
print (valueb)
not 1: bizim tanimlayacagimiz fonksiyon built-in foknksiyon ila ayni addaysa, ve tanimlama altinda yazilirsa (child gibi) bizimki built-in`i ezer-> yani farkli adlar kullan
not2: dosya adi, import edilen moduller`den farkli olmali. mesela _random.py dogru file adi olur
Random modulu
import random
result = random.randint(1,10)#between 1 -10 ve integer
print(result)
#
4
-string ile random
names = ['ali','yagmur','deniz','cenk']
result = names[random.randint(0,len(names)-1)]
# len: liste icerigini degistirebiliriz - dinamik olmayi saglar
#-1 : cunku array 0`dan baslar, son len sayisi -1 olmali
# yukaridakinin daha kisa random fonksiyonu:
# result = random.choice(names) # dinamiktir
print(result)
#
cenk
liste -array- karistirarak getir
names = ['ali','yagmur','deniz','cenk','ahmet']
random.shuffle(names)
result= names
print(result)
#
['yagmur', 'ahmet', 'ali', 'cenk', 'deniz']
veya
liste=list(range(10))
random.shuffle(liste)
result= liste
#result=random.sample(names,2)
print(result)
#
[6, 8, 1, 5, 9, 3, 2, 7, 4, 0]
liste -array - iki tane sec getir
result=random.sample(names,2)
print(result)
#
['deniz', 'yagmur']
iki file arasi iletisim - kendi modulumuzu yapmak (react,js`e benziyor)
modules_mod.py
print('ilginc modul baglantisi')
number = 10
numbers = [1,2,3]
person = {
"name":"Ali",
"age":"25",
"city":"istanbul"
}
def func(x):
print(f'x:{x}')
class Person:
def speak(self):
print('I am a student')
modules_main.py
- ilk baglanti:
import modules_mod
#ilginc modul baglantisi
- bilgileri almak:
import modules_mod as mod # kolaylik olsun diye bir nickname verdim
result = mod.number
print(result)
#
ilginc modul baglantisi
10
veya
import modules_mod as mod # kolaylik olsun diye bir nickname verdim
result = mod.numbers
print(result)
#
ilginc modul baglantisi
[1, 2, 3]
-3-
import modules_mod as mod # kolaylik olsun diye bir nickname verdim
result=mod.person["name"]
print(result)
#
ilginc modul baglantisi
Ali
-4-
import modules_mod as mod # kolaylik olsun diye bir nickname verdim
result=mod.person["age"]
print(result)
#
ilginc modul baglantisi
25
-5-
import modules_mod as mod # kolaylik olsun diye bir nickname verdim
result=mod.func(10)
print(result)
#
ilginc modul baglantisi
x:10
-6-
p=mod.Person()
p.speak()
#
ilginc modul baglantisi
I am a student
Not:
mod dosyasini explorer`da python`un lib klasoru icine atarsak, otomatik gormeyti saglariz (not: sirketlere yazilim satildiginda yazilimin kopyalanmasina engel olmayi saglariz, standart paket olmadigini amator gozler anlamaz-
visual studio`da ,
>python komutunu gir
>>>import sys
>>>sys.path
>>> ['', 'C:\\Users\\.......] - (burada lib dosyasi tam konumu ekrana listelenir - bu konumu kopyala
explorer`a bu konumu paste et
mod dosyasini cut paste ile buraya koy
artik mod bir sistem dosyasi gibi hareket eder
Not:
Bazi metodlar lib yerine DLL icindedir.
DLL olan metodlar
>>>sys.builtin_module_names
>>> burada math ve random fonksiyonlarini bulabiliriz
Comments
Post a Comment