Ana içeriğe geç
Modül 7 · Ders 4 ders 4Kurstaki 28/36~10 min
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ı

Python
# 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, evita

Python'un modülleri aradığı yer

Python, sys.path'de aşağıdakileri içeren modülleri arar:

  1. Çalışan betiğin dizini,
  2. PYTHONPATH içindeki dizinler,
  3. yüklü kütüphaneler (site-packages).
Python
import sys
sys.path     # lista di directory

Modül oluşturma

mio_modulo.py oluşturun:

Python
# mio_modulo.py
PI = 3.14159

def area_cerchio(r):
    return PI * r * r

Aynı dizindeki başka bir dosyadan:

Python
import mio_modulo
mio_modulo.area_cerchio(5)   # 78.53975

from mio_modulo import area_cerchio, PI

if __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.

Python
# 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:

Code
mio_pkg/
    __init__.py
    utenti.py
    pagamenti.py
Python
from mio_pkg import utenti
from mio_pkg.utenti import crea_utente

Sıra sende

Egzersiz#python.m7.l4.e1
Denemeler: 0Yükleniyor…

'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.

Düzenleyici yükleniyor…
İpucu göster

matematik içe aktarma sqrt'den

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#python.m7.l4.e2
Denemeler: 0Yükleniyor…

'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.

Düzenleyici yükleniyor…
İpucu göster

rnd olarak rastgele içe aktar

3 denemeden sonra çözüm mevcut

Ek zorluk

Egzersiz#python.m7.l4.e3
Denemeler: 0Yükleniyor…

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.

Düzenleyici yükleniyor…
İ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