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

Popular posts from this blog

python - pro - 20 - SQLite

python - pro - 21 - NoSQL

python-beginner - 1 - strings splits