Import qilishlar
Har bir import, odatda, alohida satrda bo‘lishi lozim. 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 rasmiylashtirish satr-laridan keyin hamda o‘zgarmaslarni e’lon qilishdan avval joylashtiriladi.
Import qilishlar quyidagi tartibda guruhlanishi kerak:
standart kutubxonadan import qilish;
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, bunday holatda uni o‘qish oson hamda import qilinayotgan tizim xato sozlanganga nisbatan tushunarli bo‘lgan xatoliklar haqidagi xabarlarni beradi (masalan, paket ichidagi katalog sys.path da yakunlanib qol-ganda):
import mypkg.sibling
from mypkg import sibling
from mypkg.sibling import example
Shunga qaramasdan, absolyut importning o‘rniga nisbiy importdan ham foydalanish mum-kin. Ayniqsa, absolyut importdan foydalanish haddan tashqari maydalashish bo‘lishi mum-kin bo‘lgan murakkab paketlar bilan ish olib borilayotganda:
from . import sibling
from .sibling import example
78
Standart kutubxonalarda paketlarning murakkab strukturalaridan qutulishga harakat qilish va har doim absolyut importdan foydalanish maqsadga muvofiq bo‘ladi.
Nomuayyan importlardan hech qachon foydalanmaslik kerak, bunday imkoniyat Python 3 da olib tashlangan.
Siz moduldan klassni import qilayotganingizda quyidagicha yozishingiz mumkin:
from myclass import MyClass
from foo.bar.yourclass import YourClass
Agar bunday yozish nomlar orasida kelishmovchilikka olib kelsa, u holda quyidagicha yoz-ing:
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. Ush-bu import shablonidan foydalanishning yakka-yu yagona to‘g‘ri qo‘llanilishi mavjud bo‘lib, u ham bo‘lsa ichki interfeysning umumiy API qismi sifatida e’lon qilinishidan iboratdir (mas-alan, aksellerator modulida qilingan ishlarni sof Python tiliga qayta yozishda, chunki bunda aynan qaysi funksiyalarni qayta yozilishi aniq bo‘lmaydi).
Do'stlaringiz bilan baham: |