JET School

Path Entry FInder nədir?

Path Entry Finder, Python-da modulun və ya paketlərin yeri müəyyənləşdirilərkən istifadə olunan ixtisaslaşdırılmış obyekt və ya funksiya interfeysidir. Bu mexanizm, import əməliyyatı zamanı Python-un modul axtarış sistemində əsas rolu oynayan elementlərdən biridir.

Path Entry Finder, sys.path siyahısındakı hər bir element (yəni Path Entry) üçün istifadə olunur və həmin entry-də modulun olub-olmadığını yoxlayır.

Necə işləyir?

Python-da bir modulu import etdikdə, aşağıdakı addımlar baş verir:

  1. Python sys.modules-də həmin modulun artıq yüklənib-yüklənmədiyini yoxlayır.
  2. sys.path siyahısındakı hər bir Path Entry üçün uyğun Path Entry Finder tapmağa çalışır.
  3. Hər finder find_spec() metodunu çağıraraq həmin yerdə (path entry-də) modulun olub-olmadığını araşdırır.
  4. Əgər modul tapılırsa, Python onu yükləyir və sys.modules-ə əlavə edir.

Path Entry Finder necə əldə olunur?

Python-un importlib mexanizminə görə, hər bir Path Entry üçün uyğun finder obyektini tapmaq üçün sys.path_hooks siyahısındakı funksiyalar sınaqdan keçirilir.

import sys

print(sys.path_hooks)

Bu siyahıdakı funksiyalar sys.path-dəki hər bir elementi götürür və həmin entry üçün finder obyektini qaytarmağa çalışır. Əgər uyğun gəlmirsə, ImportError atılır və növbəti hook yoxlanılır.

Real Nümunə – zipimporter

Əgər sys.path-də bir ZIP fayl varsa, Python zipimport.zipimporter obyektini finder kimi istifadə edir.

import zipimport


finder = zipimport.zipimporter('modules.zip')

spec = finder.find_spec('mymodule')

Bu kod modules.zip daxilində mymodule adında bir modulun olub-olmadığını yoxlayır.

Path Entry Finder və find_spec()

Path Entry Finder-in əsas funksiyası find_spec(fullname, target=None) metodudur. Bu metod aşağıdakılara cavabdehdir:

  • Modulun yeri barədə məlumat qaytarmaq (ModuleSpec obyektləri vasitəsilə).
  • Yükləyici (loader) obyektini daxil etmək.
  • Import əməliyyatını davam etdirmək və ya dayandırmaq.

Nəticə:

Path Entry Finder – Python-un modul axtarış və import sistemində vacib rol oynayan bir interfeys və ya obyekt növüdür. Hər sys.path elementi üçün uyğun finder təyin edilir və bu finder vasitəsilə modulların yeri təyin edilir. Bu mexanizm Python-un modulyar və genişlənə bilən import sisteminin əsas hissəsidir.

Əlaqəli terminlər:

IT sahəsini dərindən öyrənmək üçün kurslarımıza qoşulun. Ətraflı məlumat almaq üçün sorğu göndərin!