Өзін-өзі тексеру сұрақтары
Информатиканың құрамдас бөліктері мен объектілері қандай?
Дәріс №2 Негізгі Стандартты Python модульдері.
Дәріс тақырыбы:Негізгі Стандартты Python модульдері.
Дәрістің мақсаты:Негізгі Стандартты Python модульдерін қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
Стандартты кітапхананың модульдерін зерттеуге кіріспес бұрын, Python-да модуль деп аталады.
Модульдік тәсілге сәйкес бағдарламалау үлкен міндет бірнеше ұсақ болып бөлінеді, олардың әрқайсысын (Идеалда) жеке модуль шешеді. Әр түрлі әдістемелерде модуль өлшеміне әртүрлі шектеулер беріледі, алайда бағдарламаның модульдік құрылымын құру кезінде модульдердің композициясын құру маңызды, ол олардың арасындағы байланысты барынша азайтуға мүмкіндік береді. Өз элементтері арасында көптеген байланыстары бар сыныптар мен функциялар жиынтығы бір модульде қисынды орналастыру болар еді. Тағы бір пайдалы ескерту бар: модульдерді қайта жазудан гөрі пайдалану оңай болуы керек. Бұл дегеніміз, модуль ыңғайлы интерфейс болуы керек: функциялар жиынтығы, сыныптар және тұрақты, ол өз пайдаланушыларына ұсынады.
Python тілінде бір мәселеге арналған модульдер жиынтығын пакетке қоюға болады. Мұндай пакеттің жақсы мысалы-XML пакеті, онда XML өңдеудің әр түрлі аспектілеріне арналған модульдер жинақталған.
Python бағдарламасында модуль Модуль-нысан-модуль, Оның атрибуттары модульде анықталған атаулар болып табылады:
>>> import datetime
>>> d1 = datetime.date(2004, 11, 20)
Бұл мысалда datetime модулі импортталады. Import операторының жұмысы нәтижесінде ағымдағы атау кеңістігінде datetime атымен объект пайда болады.
Python тіліндегі бағдарламаларда қолдану үшін модульдер өзінің шығу тегі бойынша кәдімгі (Python-да жазылған) және басқа бағдарламалау тілінде жазылған кеңейту модульдеріне (әдетте C-да) бөлінеді. Пайдаланушы тұрғысынан олар жылдам әрекетпен ерекшеленуі мүмкін. Стандартты кітапханада модульдің екі нұсқасы бар: Python және C.бұл, мысалы, pickle және cPickle модульдері. Әдетте Python модульдері кеңейту модулдеріне қарағанда икемді.
Python модульдері
Модуль бастапқы коды бар жеке файл түрінде ресімделеді. Стандартты Модульдер тілдің тиісті интерпретаторын таба алатын каталогта болады. Python модульдерді іздейтін каталогтарға жолды sys айнымалысы мәнінен көруге болады.path:
>>> sys.path
['', '/usr/local/lib/python23.zip', '/usr/local/lib/python2.3',
'/usr/local/lib/python2.3/plat-linux2', '/usr/local/lib/python2.3/lib-tk',
'/usr/local/lib/python2.3/lib-dynload',
'/usr/local/lib/python2.3/site-packages']
Соңғы Python нұсқаларында модульдерді жинақы сақтау үшін zip-мұрағатына (Java-дағы jar-мұрағаттарға ұқсас) орналастыруға болады.
Модульдерді іздеу бағдарламасын іске қосқан кезде, ағымдағы каталогта жүреді. (Стандартты немесе қосымша орнатылған модульдермен аттар қақтығысы болмас үшін өз модульдерін Мұқият атауыңыз керек.)
Python бағдарламасына модульді қосу import операторының көмегімен жүзеге асырылады . Оның екі нысаны бар : import және from-import:
import os
import pre as re
from sys import argv, environ
from string import *
Бірінші пішін көмегімен ағымдағы көріну аймағымен тек модуль объектісіне сілтеме жасайтын атау ғана байланысады, ал екіншісін пайдаланған кезде модуль объектілерінің көрсетілген аттары (немесе қолданылса, барлық аттары * ) ағымдағы көріну аймағымен байланысады. Импорттау кезінде, as арқылы элементтің атын өзгертуге болады. Бірінші жағдайда модуль атаулары кеңістігі бөлек атауда қалады және модульден нақты атауына кіру үшін нүктені қолдану қажет. Екінші жағдайда аттар ағымдағы модульде анықталғандай қолданылады:
os.system("dir")
digits = re.compile("\d+")
print argv[0], environ
Модульді қайта импорттау әлдеқайда жылдам жүреді , себебі Модульдер интерпретатормен кэштеледі. Жүктелген модульді reload функциясы арқылы тағы да жүктеуге болады (мысалы, модуль дискіде өзгерсе)():
import mymodule
. . .
reload(mymodule)
Бірақ бұл жағдайда модульдің ескі нұсқасынан сыныптардың даналары болып табылатын барлық объектілер өз мінез-құлқын өзгертпейді.
Модульдермен жұмыс істеу кезінде басқа да қырлары бар . Мысалы, модульді импорттау процесін қайта анықтауға болады. Бұл туралы толығырақ түпнұсқа құжаттамадан білуге болады.
Достарыңызбен бөлісу: |