Mundarija kirish I. Bob pythonning o'ziga xosligi va modullar modullarni skriptlar sifatida bajarish Modul qidirish yoʻli standart modullar 1 II.


if __name__ == "__main__": import sys


Download 47.49 Kb.
bet5/10
Sana16.06.2023
Hajmi47.49 Kb.
#1507314
1   2   3   4   5   6   7   8   9   10
Bog'liq
7. PYTHON DASTURLASH TILIDA MODULLAR

if __name__ == "__main__":
import sys
fib(int(sys.argv[1]))
1.1.1-rasm
Siz faylni skript sifatida ham, import qilinadigan modul sifatida ham foydalanishga yaroqli qilishingiz mumkin, chunki buyruq qatorini tahlil qiluvchi kod faqat modul "asosiy" fayl sifatida bajarilgan taqdirdagina ishlayd.( 1.1.2-rasm)
$ python fibo.py 50
0 1 1 2 3 5 8 13 21 34
1.1.2-rasm
Agar modul import qilingan bo'lsa, kod ishga tushmaydi.( 1.1.3-rasm)
>>> import fibo
>>>
1.1.3-rasm
Bu ko'pincha modulga qulay foydalanuvchi interfeysini ta'minlash yoki sinov maqsadlarida (modulni skript sifatida ishga tushirish test to'plamini amalga oshirish uchun) ishlatiladi.

1.2 Modul qidirish yoʻli


Nomlangan modul spamimport qilinganda, tarjimon avval shu nomga ega o'rnatilgan modulni qidiradi. Ushbu modul nomlari ro'yxatda keltirilgan sys.builtin_module_names. Agar topilmasa, u spam.pyo'zgaruvchi tomonidan berilgan kataloglar ro'yxatida nomlangan faylni qidiradi sys.path. sys.pathushbu joylardan ishga tushiriladi:

  • Kirish skriptini o'z ichiga olgan katalog (yoki fayl ko'rsatilmaganda joriy katalog).

  • PYTHONPATH(qobiq o'zgaruvchisi bilan bir xil sintaksisga ega katalog nomlari ro'yxatiPATH).

  • O'rnatishga bog'liq standart (odatda modul site-packagestomonidan boshqariladigan katalogni o'z ichiga olgan holda).site

Eslatma
Simli havolalarni qo'llab-quvvatlaydigan fayl tizimlarida kirish skriptini o'z ichiga olgan katalog simli bog'lanish kuzatilgandan keyin hisoblanadi. Boshqacha qilib aytganda, simli havolani o'z ichiga olgan katalog modulni qidirish yo'liga qo'shilmaydi .
Boshlashdan so'ng, Python dasturlari ni o'zgartirishi mumkin sys.path. Ishlayotgan skriptni o'z ichiga olgan katalog standart kutubxona yo'lidan oldin qidiruv yo'lining boshida joylashtiriladi. Bu shuni anglatadiki, kutubxona katalogidagi bir xil nomdagi modullar o'rniga o'sha katalogdagi skriptlar yuklanadi. Agar almashtirish mo'ljallanmagan bo'lsa, bu xato. Qo'shimcha ma'lumot uchun Standart modullar bo'limiga qarang .
Tuzilgan” Python fayllari 
Modullarni yuklashni tezlashtirish uchun Python har bir modulning kompilyatsiya qilingan versiyasini __pycache__katalog nomi ostida keshlaydi, bu yerda versiya kompilyatsiya qilingan fayl formatini kodlaydi; u odatda Python versiya raqamini o'z ichiga oladi. Masalan, CPython 3.3-versiyasida spam.py ning kompilyatsiya qilingan versiyasi sifatida keshlanadi . Ushbu nomlash konventsiyasi Python ning turli nashrlari va turli versiyalaridan tuzilgan modullarni birga yashashga imkon beradi.module.version.pyc__pycache__/spam.cpython-33.pyc
Python manbaning o'zgartirish sanasini kompilyatsiya qilingan versiyaga nisbatan tekshiradi va u eskirganligini va qayta kompilyatsiya qilinishi kerakligini ko'radi. Bu butunlay avtomatik jarayon. Bundan tashqari, kompilyatsiya qilingan modullar platformadan mustaqildir, shuning uchun bir xil kutubxona turli arxitekturali tizimlar orasida bo'lishi mumkin.
Python ikkita holatda keshni tekshirmaydi. Birinchidan, u har doim qayta kompilyatsiya qiladi va to'g'ridan-to'g'ri buyruq satridan yuklangan modul uchun natijani saqlamaydi. Ikkinchidan, manba moduli bo'lmasa, keshni tekshirmaydi. Manba bo'lmagan (faqat kompilyatsiya qilingan) tarqatishni qo'llab-quvvatlash uchun kompilyatsiya qilingan modul manba katalogida bo'lishi va manba moduli bo'lmasligi kerak.
Mutaxassislar uchun ba'zi maslahatlar:

  • Siz kompilyatsiya qilingan modul hajmini kamaytirish uchun Python buyrug'idagi -Oyoki kalitlaridan foydalanishingiz mumkin. Kalit assert bayonotlarini o'chiradi, -OOkalit ikkala assert bayonotini va __doc__ satrlarini olib tashlaydi. Ba'zi dasturlar mavjud bo'lishiga tayanishi mumkinligi sababli, siz nima qilayotganingizni bilsangizgina ushbu parametrdan foydalanishingiz kerak. "Optimallashtirilgan" modullar tegga ega va odatda kichikroqdir. Kelgusi versiyalar optimallashtirish effektlarini o'zgartirishi mumkin.-O-OOopt-

  • .pyc Dastur fayldan o'qilganda fayldan o'qilgandan ko'ra tezroq ishlamaydi .py; .pycfayllar haqida tezroq bo'lgan yagona narsa - ularning yuklanish tezligi.

  • Modul compileallkatalogdagi barcha modullar uchun .pyc fayllarini yaratishi mumkin.

  • Ushbu jarayon haqida batafsil ma'lumot, shu jumladan qarorlar sxemasiPEP 3147 .



Download 47.49 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling