1. Python tili imkoniyatlari Pythonni ko`chirish


Bir nechta modullar uchun global o`zgaruvchilardan birgalikda foydalanishni qanday tashkil etish mumkin?



Yüklə 2,19 Mb.
səhifə71/78
tarix19.12.2023
ölçüsü2,19 Mb.
#152124
1   ...   67   68   69   70   71   72   73   74   ...   78
1. Python tili imkoniyatlari Pythonni ko`chirish

Bir nechta modullar uchun global o`zgaruvchilardan birgalikda foydalanishni qanday tashkil etish mumkin?


Ushbu muammoning ko`pchilik tomonidan qo`llaniladigan yechimi – bu (ko`pincha congig yoki cfg deb nomlanuvchi) bir modul yaratishdir.Shunchaki, ilovangizning har bir moduliga import config deb qo`shiasiz. Bunda modulga global nom orqali murojaat qilish imkoniyati hosil bo`ladi. Modulning faqatgina bitta nusxasi mavjud bo`lganligi sababli, shu modulning ichida amalga oshirilgan barcha o`zgarishlar hamma yerda o`z aksini topaveradi. Masalan:
config.py

x = 0

mod.py:


import config
config.x = 1



import config
import mod
print(config.x)

main.py:



Xuddi shu sabablar bo`yicha modullardan singlton implementatsiyasi uchun asos sifatida ham foydalanish mumkin.

Importlashdan qanday unumliroq foydalanish mumkin?


Umumiy holarda imkon qadar from modulname import * usulidan foydalanmang. Bu holat import qiluvchining nomlar muhitining to`lib qolishiga olib kelishi mumkin. Ba`zi kishilar bu usulni hattoki aynan mana shunday foydalanish uchun yaratilgan modullarga nisbatan ham qo`llamaslikka harakat qilishadi (masalan, tkinter yoki thrading kabi modullar).
Modullarni fayl boshlanishida import qiling. Bu sizning kodingiz qanday modullarni talab qilishi hamda modulning nomi ko`rinish sohasida mavjud yoki mavjud emasligiga javob berish uchun muhimdir.bir satrda bitta importni amalga oshirish import buyruqlarini qo`shish va keraksizlarini o`chirish amallarini osonlashtiradi hamda adashishlarning oldini oladi, lekin guruhli import usuli ekranda ozroq joyni egallaydi.
Quyidagi tartibda modullarni import qilish to`g`ri hisoblanadi:

  • Standart kutubxona modullari (masalan: sys, os, getopt, re)

  • Chetki ishlab chiqaruvchilarning modullari (site-packages papkasidagi barcha modullar. Masalan: PIL, NumPy va b.)

  • Lokal yaratilgan modullar

Ba`zida importni funksiya yoki klassning ichida joylashtirish kerak bo`lishi mumkin. Takroriy import bilan bog`liq muammolarning oldini olish uchun Gordon McMillan quyidagilarni maslahat beradi:
Ikkala mdul ham import shaklidan foydalangan holatlarda takroriy import yaxshi ishlaydi. Lekin bu amaliyot bir modul ikkinchisidagi nomga murojaat qilmoqchi bo`lganida va import tashqi darajada joylashganda xatoga duch keladi(from module import name). Buning sababi, birinchi modul ikkinchisini import qilish bilan bandligi sababli, birinchi modulning nomlari hali murojaatga tayyor emasligidir.
Bunday holda, agar ikkinchi modul faqatgina bitta funksiyada qo`llanilayotgan bo`lsa, importni osonlik bilan shu funksiyaning o`zida joylashtirihs mumkin. Unga murojaat etilgan vaqtda birinchi modul yuklanishni yakuniga yetkazib, ikkinchi modul o`z importini amalga oshirishi mumkin bo`ladi.
Agar modullardan biri platformaga bog`liq bo`ladigan bo`lsa, u holda, importni fayl boshidan boshqa yerga ko`chirishga to`g`ri kelishi mumkin. Bunday holda barcha modullarni fayl boshida import qilishning iloji bo`lmaydi. Bu vaziyatda kerakli modullarni unga mos platformaga bog`liq kodning o`zida import qilish yaxshi yechim bo`lishi mumkin.
Importni funksiyalarning tavsifi kabi ichki sohalarga ko`chirish amalini faqatgina biror muammo, masalan, takroriy import kabilarga duch kelganingizda yoki modulning faollashuvi vaqtini qisqartirish kerak bo`lgandagina qo`llashni tavsiya etiladi.
Bu usul modullarning ko`pchiligi unchalik zarur bo`lmaganda va dasturning qanday bajarilishiga bog`liq holda talab qilinishi mumkinbo`lgan vaziyatlarda foydali bo`lishi mumkin. Bundan tashqari modullar importini funksiyaning ichiga aniq bir modul faqat shu funksiyaning ichidagina ishlatilsa joylashtirishingiz mumkin bo`ladi. Modulni birinchi marta yuklash jarayoni modulni faollashtiirshga ketadigan vaqt hisobiga cho`zilishi mumkinbo`lib, lekinkeyinchalik ularni qayta yuklash jarayoni bor-yo`g`i lug`atlardan bir-ikkita qidiruv davrigacha qisqarib qoladi. Hattoki modulning nomi ko`rinish sohasidan yo`qolib qolgan taqdirda ham, modulning o`zi katta ehtimollik bilan hali ham sys.modulesda bo`ladi.

Yüklə 2,19 Mb.

Dostları ilə paylaş:
1   ...   67   68   69   70   71   72   73   74   ...   78




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə