Importing everything

Siz barcha funksiyalar va o‘zgaruvchilarni bir marta import qilishingiz ham mumkin.

SU

Hamma narsani import qilish

Siz barcha funksiyalar va o‘zgaruvchilarni bir marta import qilishingiz ham mumkin. Biroq, buni qilish tavsiya etilmaydi. Sababi shundaki, hamma narsani import qilganingizda, siz nimani import qilganingizni doimo bilmay qolasiz. Bu holat namespacening ifloslanishiga olib kelishi mumkin, ya'ni siz biror funksiyani yoki o‘zgaruvchini import qilib, tasodifan ulardan birining nomini o‘zingizning o‘zgaruvchi yoki funksiyangiz bilan qayta ishlatib yoki ustiga yozib qo‘yishingiz mumkin.

Keling, oddiy bir misolga nazar tashlaymiz:

>>> from math import *
>>> tan = 5
>>> tan(10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

Bu yerda siz math kutubxonasidan barcha narsalarni * wildkard orqali import qildingiz. Yulduzcha (*) Pythonga moduldagi hamma narsani import qilishni aytadi.

So‘ngra siz tan degan o‘zgaruvchini yaratishga qaror qildingiz. Ehtimol siz tan funksiyasini math modulidan import qilganingizni sezmagansiz. Agar siz tan funksiyasini chaqirmoqchi bo‘lsangiz, TypeError xatosini olasiz, chunki siz tan funksiyasini o‘z o‘zgaruvchingiz bilan ustiga yozib qo‘ydingiz. Bu holat shadowing deb nomlanadi.

from ... import * foydalanish faqat modul maxsus ravishda shunga mo‘ljallangan bo‘lsa, ma'qul bo‘ladi. Umuman olganda, yulduzcha yordamida hamma narsani import qilishdan saqlanish tavsiya etiladi, chunki bu kabi xatolarni tuzatish juda qiyin bo‘lishi mumkin. Faqat bir nechta misollardan biri, bu holat ko‘pincha Python'da Tkinter kutubxonasida uchraydi. Tkinter Python uchun kross-platformali GUI kutubxonasidir va u yordamida siz desktop ilovalar yaratishingiz mumkin. Tkinterdan import qilingan o‘zgaruvchilar, funksiyalar va sinflar odatda juda noyobdir, shuning uchun ularning nomlarini tasodifan o‘chirib yuborish ehtimoli kam. Ammo, hatto bu holatda ham yulduzcha yordamida hamma narsani import qilish tavsiya etilmaydi.

Ushbu sahifada

Xato haqida xabar berish