Modül dersleri (4/4)
içe aktarma ve modüller
Python'daki bir modül basitçe bir .py dosyasıdır. Bir modülün kodunu kullanmak için
başka bir dosyadan onu içe aktarırsınız.
import Formları
# 1) import del modulo intero
import math
math.sqrt(16) # 4.0
math.pi # 3.14159...
# 2) import di nomi specifici
from math import sqrt, pi
sqrt(16) # ora direttamente disponibile
pi
# 3) import con alias
import numpy as np # convenzione idiomatica
from datetime import datetime as dt
# 4) import "star" (sconsigliato)
from math import * # inquina il namespace, evitaPython'un modülleri aradığı yer
Python, sys.path'de aşağıdakileri içeren modülleri arar:
- Çalışan betiğin dizini,
PYTHONPATHiçindeki dizinler,- yüklü kütüphaneler (
site-packages).
import sys
sys.path # lista di directoryModül oluşturma
mio_modulo.py oluşturun:
# mio_modulo.py
PI = 3.14159
def area_cerchio(r):
return PI * r * rAynı dizindeki başka bir dosyadan:
import mio_modulo
mio_modulo.area_cerchio(5) # 78.53975
from mio_modulo import area_cerchio, PIif __name__ == "__main__":
Bir komut dosyası doğrudan çalıştırıldığında, özel değişkeni __name__
"__main__" eşittir. Aynı dosya modül olarak içe aktarıldığında,
__name__ modül adına eşittir.
# strumento.py
def fai_qualcosa():
print("lavoro!")
if __name__ == "__main__":
# eseguito solo se lanci `python strumento.py`
# NON viene eseguito se qualcuno importa questo file
fai_qualcosa()Bu, hem yeniden kullanılabilir dosya işlevi gören dosyalar için standart kalıptır. modül ve yürütülebilir komut dosyası.
Paketler: modül klasörleri
__init__.py dosyasını (boş bile olsa) içeren bir dizin,
içe aktarılabilir paket:
mio_pkg/
__init__.py
utenti.py
pagamenti.py
from mio_pkg import utenti
from mio_pkg.utenti import crea_utenteSıra sende
'math' modülünden 'sqrt' fonksiyonunu içe aktarın ("from math import sqrt" ile), ardından 144'ün karekökünü hesaplayın ve bunu "r"ye atayın. 'r'yi değerlendirin.
İpucu göster
matematik içe aktarma sqrt'den
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
'Rnd' takma adıyla 'rastgele' modülü içe aktarın ("rnd olarak rastgele içe aktar"), ardından rnd.seed(42) ile tohumu 42'ye ayarlayın ve rnd.randint(1, 100) değerini değerlendirin.
İpucu göster
rnd olarak rastgele içe aktar
3 denemeden sonra çözüm mevcut
Ek zorluk
Import the `sin` and `cos` functions directly from the `math` module using `from ... import ...`. Calculate the sum of `sin(0)` and `cos(0)`, store it in `trig_sum`, and evaluate it.
İpucu göster
sin(0) 0,0 verir, cos(0) 1,0 verir. Toplam 1,0. Matematik ithalat günahından kullanın, çünkü.
3 denemeden sonra çözüm mevcut