Mavzu: “With” operatorini oqimlarda qo’llash.
Ishdan maqsad: Python dasturlash tilida “With” operatorini oqimlarda qo’llash.
Nazariy qism
Python-ning bayonoti yangi boshlagan va tajribali Python dasturchilari uchun ham chalkash bo'lishi mumkin. Ushbu bobda bilan kontekst menejeri sifatida bayonotining asosiy g'oyasi va uni qo'shma va bir vaqtda dasturlashda, xususan iplarni sinxronlashda qulflardan aniq foydalanishga oidligi haqida chuqur tushuntirish berilgan. Ushbu bobda ushbu bayonot bilan qanday qilib eng ko'p qo'llanilishini aniq misollar keltirilgan.
Ushbu bob quyidagi mavzularni qamrab oladi:
Kontekst menejmenti tushunchasi va bu bayonotda mavjud bo'lgan variantlar, masalan, qo'shma va parallel dasturlashda o'ziga xos kontekst menejeri sifatida taqdim etadi.
Bilan bayonotining haqiqiy sintaksisini va undan qanday qilib samarali va samarali foydalanishni.
Qo'shma dasturlashda with operatoridan foydalanishning turli xil usullari.
Texnik talablar
Ushbu bob uchun zaruriy shartlar ro'yxati:
Python 3 allaqachon kompyuteringizda o'rnatilganligiga ishonch hosil qiling
GitHub-dan kerakli omborni tekshiring
Ushbu bob davomida biz Chapter04 deb nomlangan pastki papka bilan ishlaymiz
Harakatdagi quyidagi videolarni tekshiring
Kontekstni boshqarish
Bilan bayonoti birinchi marta Python 2.5 da taklif qilingan va ancha vaqtdan beri mavjud. Biroq, hatto tajribali Python dasturchilarida ham undan foydalanish borasida chalkashliklar mavjud. Ushbu bayonot asosan resurslarni mos ravishda boshqaradigan kontekst menejeri sifatida ishlatiladi va bu, ayniqsa, birgalikda yoki parallel dasturda turli xil ob'ektlar tomonidan birgalikda foydalaniladigan birgalikda dasturlash va bir vaqtda dasturlashda juda muhimdir.
Tajribali Python foydalanuvchisi sifatida, ehtimol siz buni Python dasturlari ichidan tashqi fayllarni ochish va o'qish uchun ishlatilgan bayonot bilan ko'rgansiz. Ushbu muammoni pastroq darajada ko'rib chiqsak, Python-da ba'zi bir tashqi fayllarni ochish operatsiyasi ma'lum bir resursni sarf qiladi - bu holda ba'zi bir fayllarni tavsiflovchi - va sizning operatsion tizimingiz ushbu resursga ma'lum bir cheklovni o'rnatadi. Bu shuni anglatadiki, sizning tizimingizda ishlaydigan bitta jarayon bir vaqtning o'zida qancha faylni ochishi mumkinligi bo'yicha yuqori chegara mavjud.
Keling, ushbu fikrni yanada ravshanroq ko'rsatish uchun bir misolni tezda ko'rib chiqamiz. Quyidagi kodda ko'rsatilgan Chapter04 / example1.py faylini ko'rib chiqamiz:
# Chapter04/example1.py
n_files = 10
files = []
for i in range(n_files):
files.append(open('output1/sample%i.txt' % i, 'w'))
Ushbu dastur tezda output1 papkasida 10 ta matnli fayllarni yaratadi: sample0.txt, sample1.txt, ..., sample9.txt. Bizga qiziqroq bo'lgan narsa, bu fayllar for loop ichida ochilgan, ammo yopilmaganligi - bu yomon dasturlash amaliyoti, keyinchalik muhokama qilinadi. Keling, n_files qiymatini ushbu kodda ko'rsatilgandek katta raqamga - masalan, 10000 ga o'tkazmoqchi edik:
# Chapter4/example1.py
n_files = 10000
files = []
# method 1
for i in range(n_files):
files.append(open('output1/sample%i.txt' % i, 'w'))
Xulosa:
Men ushbu labarato’riya ishlarini qilishim quydagilarni--
Intel Math Kernel Kutubxona (Intel MKL) ilm-fan, muhandislik va moliyaviy ilovalar uchun optimallashtirilgan matematik kutubxona jamlanmasi. Core matematika vazifalari Blas, LAPACK, ScaLAPACK, tez Fourier ishlash va vektor matematikani o'z ichiga oladi
Do'stlaringiz bilan baham: |