Import qilishlar
Har bir import, odatda, alohida satrda bo`lishi kerak.
To`g`ri yozilishi:
import os
import sys
Xato yosilishi:
import sys, os
Shu bilan birga, quyidagicha yozishga ruxsat etiladi:
from subprocess import Popen, PIPE
Import qilishlar har doim faylning boshlanishida, modulga izohlar va hujjatlashtirish satrlaridan keyin hamda o`zgarmaslarni e`lon qilishdan oldinda joylashtiriladi.
Import qilishlar quyidagi tartibda guruhlanishi kerak:
Standart kutubxonadan import qilishlar.
Chetki kutubxonalardan import qilishlar.
Joriy loyiha modullarini import qilish.
Har bir import qilishlar guruhlari orasida bo`sh satr qoldiring.
Import qilishlardan keyin __all__ spetsifikatsiyasini ko`rsating.
Absolyut import qilish tavsiya etiladi, chunki, odatda bu holatda uni o`qish oson hamda import qilinayotgan tizim xato sozlanganda nisbatan tushunarli bo`lgan xatoliklar haqidagi xabarlarni beradi (masalan, paket ichidagi katalog sys.path da yakunlanib qolganda):
import mypkg.sibling
from mypkg import sibling
from mypkg.sibling import example
Lekin shunga qaramasdan, absolyut importning o`rniga nisbiy importdan ham foydalanish mumkin. Ayniqsa, absolyut importdan foydalanish haddan tashqari maydalashish bo`lishi mumkin bo`lgan murakkab paketlar bilan ish olib borilayotganda:
from . import sibling
from .sibling import example
Standart kutubxonalarda paketlarning murakkab strukturalaridan qutulishga harakat qilish va har doim absolyut importdan foydalanish maqsadga muvofiq bo`ladi.
Nomuayyan importlardan hech qachon foydalanmaslik kerak va bu imkoniyat Python3 da olib tashlandi.
Siz moduldan klassni import qilayotganingizda quyidagicha yozishingiz mumkin:
Agar bunday yozish nomlar orasida kelishmovchilikka olib kelsa, u holda quyidagicha yozing:
import myclass
import foo.bar.yourclass
“myclass.MyClass” va “foo.bar.yourclass.YourClass” lardan foydalaning.
Import shablonlaridan (from import * kabi) imkon qadar foydalanmaslik kerak, chunki, ular nomlar maydonida qanday nomlar mavjudligi haqida nafaqat dasturni o`qiyotgan kishilarda balki ko`plab avtomatlashtirilgan tiizmlarda ham noaniqliklarga olib keladi. Ushbu import shablonidan foydalanishning yakkayu-yagona to`g`ri qo`llanilishi bor bo`lib, bu ham bo`lsa, ichki unterfeysning umumiy API qismi sifatida e`lon qilinishidan iboratdir (masalan aksellerator modulida qilingan ishlarni sof Python tiliga qayta yozishda, chunki bunda aynan qaysi funksiyalarni qayta yozilishi aniq bo`lmaydi).
Dostları ilə paylaş: |