pip install package_name – paket(lar)ni o`rnatish.
pip uninstall package_name – paket(lar)ni o`chirish.
pip list – o`rnatilgan paketlarning ro`yxati.
pip show package_name – o`rnatilgan paket to`g`risidagi mal`umotni chiqarish.
pip search – paketlarni nomi bo`yicha izlash.
pip –proxy user:passwd@proxy.server:port – proksidan foydalanish.
pip install -U – paket(lar)ni yangilash.
pip install –force-reinstall – yangilanganda, hattoki, paket eng oxirgi versiyadagisi bo`lsa ham, qaytadan o`rnatish.
33-bob
Pythonda dasturlashni yangi boshlovchilarni ikkilantirishi mumkinbo`lgan ba`zi holatlar.
Nega menda o`zgaruvchi qiymatga ega bo`lsa ham, UnboundLocalError noodatiy holat xabari paydo bo`lyapti?
Ba`zida oldin ishlab turgan koddagi funksiyaga oddiygina o`zlashtirish operatorini qo`shishning natijasi sifatida UnboundLocalError xatoligi chiqib qolishi mumkin.
Mana bu kod ishlaydi:
>>> x = 10
>>> def bar():
... print(x)
>>> bar()
10
>>> foo()
Traceback (most recent call last):
...
UnboundLocalError: local variable 'x' referenced before assignment
>>> x = 10
>>> def foo():
... print(x)
... x += 1
Lekin quyidagi kod esa, UnboundLocalError xatolikka olib keladi:
Natija:
Bunday holatning kelib chiqishiga sabab shuki, siz o`zgaruvchiga uning ko`rinish sohasida qiymat berayotgan vaqtingizda u shu sohada lokal o`zgaruvchiga aylanib qoladi hamda tashqi sohadagi xuddi shu o`zgaruvchilarni yashirin holatga o`tib qolishiga olib keladi.
foo funksiyasidagi oxirgi ko`rsatma o`z tarkibida x o`zgaruvchiga yangi qiymat berganda, kompilyator bu lokal o`zgaruvchi ekan degan xato xulosaga keladi. Demak undan oldinroqdagi print hali faollashtirilmagan o`zgaruvchini chiqarishga intilganda, xatolik kelib chiqadi.
Yuqoridagi misolda o`zgaruvchiga murojaat qilish mumkin bo`lishi uchun uni global o`zgaruvchi sifatida e`lon qilish mumkin:
>>> x = 10
>>> def foobar():
... global x
... print(x)
... x += 1
>>> foobar()
10
>>> print(x)
11
Bu yaqqol e`lon qilishdan maqsad, sizga tashqi ko`rinish sohasidagi o`zgaruvchining qiymatini o`zgartirayotganligingizni (klass va ekzemplyarlar bilan bog`liq xuddi shunday holatdan farqli tarzda) eslatish uchun kerak.
Siz xuddi shunday vazifani ko`rinishning ichki sohasida ham bajarish uchun nonlocal so`zidan foydalanishingiz mumkin:
>>> def foo():
... x = 10
... def bar():
... nonlocal x
... print(x)
... x += 1
... bar()
... print(x)
>>> foo()
10
11
Dostları ilə paylaş: |