Хелпикс

Главная

Контакты

Случайная статья





import sys 10 страница



 

т. е. с т р о к и, с о д е р ж а щ е й с и м в о л ы п е р е в о д а с т р о к и. (п р и м. п е р е в )


 

 

10. 11. А н н о т а ц и и                                                                                                                                                          69


A Byte of Python (Russian), В е р с и я 2. 01

 

 

Д а л е е м ы у в и д и м, к а к и с п о л ь з о в а т ь и с о з д а в а т ь м о д у л и Python.


 

70                                                                                                                                                Г л а в а 10. Ф у н к ц и и


 

М о д у л и

 

 

К а к м о ж н о и с п о л ь з о в а т ь к о д п о в т о р н о, п о м е щ а я е г о в ф у н к ц и и, м ы у ж е в и д е л и. А ч т о, е с л и н а м п о н а д о б и т с я п о в т о р н о и с п о л ь з о в а т ь р а з л и ч н ы е ф у н к ц и и в д р у г и х н а ш и х п р о -г р а м м а х? К а к в ы у ж е, н а в е р н о е, д о г а д а л и с ь, о т в е т – м о д у л и.

 

С у щ е с т в у ю т р а з н ы е с п о с о б ы с о с т а в л е н и я м о д у л е й, н о с а м ы й п р о с т о й – э т о с о з д а т ь ф а й л с р а с ш и р е н и е м . py, с о д е р ж а щ и й ф у н к ц и и и п е р е м е н н ы е.

 

Д р у г о й с п о с о б – н а п и с а т ь м о д у л ь н а т о м я з ы к е п р о г р а м м и р о в а н и я, н а к о т о р о м н а п и с а н с а м и н т е р п р е т а т о р Python. Н а п р и м е р, м о ж н о п и с а т ь м о д у л и н а я з ы к е п р о г р а м м и р о в а -н и я C, к о т о р ы е п о с л е к о м п и л я ц и и м о г у т и с п о л ь з о в а т ь с я с т а н д а р т н ы м и н т е р п р е т а т о р о м Python.

 

М о д у л ь м о ж н о и м п о р т и р о в а т ь в д р у г у ю п р о г р а м м у, ч т о б ы и с п о л ь з о в а т ь ф у н к ц и и и з н е г о. Т о ч н о т а к ж е м ы и с п о л ь з у е м с т а н д а р т н у ю б и б л и о т е к у Python. С п е р в а п о с м о т р и м, к а к и с п о л ь з о в а т ь м о д у л и с т а н д а р т н о й б и б л и о т е к и.

 

П р и м е р: (с о х р а н и т е к а к using_sys. py)

 

import sys

 

print ('А р г у м е н т ы к о м а н д н о й с т р о к и: ')

 

for i in sys. argv:

 

print (i)

 

print (' \n\n П е р е м е н н а я PYTHONPATHс о д е р ж и т ', sys. path, ' \n ')

 

В ы в о д:

 

$ python3 using_sys. py we are arguments

 

А р г у м е н т ы к о м а н д н о й с т р о к и:

 

using_sys. py

 

we

 

are

 

arguments

 

П е р е м е н н а я PYTHONPATH с о д е р ж и т ['', 'C: \\Windows\\system32\\python30. zip', 'C: \\Python30\\DLLs', 'C: \\Python30\\lib', 'C: \\Python30\\lib\\plat-win', 'C: \\Python30', 'C: \\Python30\\lib\\site-packages']


 

 


A Byte of Python (Russian), В е р с и я 2. 01

 

 

К а к э т о р а б о т а е т:

 

н а ч а л е м ы и м п о р т и р у е м м о д у л ь sys к о м а н д о й import. Э т и м м ы г о в о р и м Python, ч т о х о т и м и с п о л ь з о в а т ь э т о т м о д у л ь. М о д у л ь sys с о д е р ж и т ф у н к ц и и, о т н о с я щ и е с я к и н т е р п р е т а т о р у Python и е г о с р е д е, т. е. к с и с т е м е ( sys tem).

 

К о г д а Python в ы п о л н я е т к о м а н д у import sys, о н и щ е т м о д у л ь sys. В д а н н о м с л у ч а е э т о о д и н и з в с т р о е н н ы х м о д у л е й, и Python з н а е т, г д е е г о и с к а т ь.

 

Е с л и б ы э т о б ы л н е с к о м п и л и р о в а н н ы й м о д у л ь, т. е. м о д у л ь, н а п и с а н н ы й н а Python, т о г д а и н т е р п р е т а т о р Python и с к а л б ы е г о в к а т а л о г а х, п е р е ч и с л е н н ы х в п е р е м е н н о й sys. path. Е с л и м о д у л ь н а й д е н, в ы п о л н я ю т с я к о м а н д ы в т е л е м о -д у л я, и о н с т а н о в и т с я д о с т у п н ы м . О б р а т и т е в н и м а н и е, ч т о и н и ц и а л и з а ц и я 1 п р о и с х о д и т т о л ь к о п р и п е р в о м и м п о р т е м о д у л я.

 

Д о с т у п к п е р е м е н н о й argv в м о д у л е sys п р е д о с т а в л я е т с я п р и п о м о щ и т о ч к и, т. е. sys. argv. Э т о я в н о п о к а з ы в а е т, ч т о э т о и м я я в л я е т с я ч а с т ь ю м о д у л я sys. Е щ ё о д н и м п р е и м у щ е с т в о м т а к о г о о б о з н а ч е н и я я в л я е т с я т о, ч т о и м я н е к о н -ф л и к т у е т с и м е н е м п е р е м е н н о й argv, к о т о р а я м о ж е т и с п о л ь з о в а т ь с я в в а ш е й п р о г р а м м е.

 

П е р е м е н н а я sys. argv я в л я е т с я с п и с к о м с т р о к (с п и с к и б у д у т д е т а л ь н о о б с у ж -д а т ь с я в о д н о й и з п о с л е д у ю щ и х г л а в ). О н а с о д е р ж и т с п и с о к а р г у м е н т о в к о м а н д -н о й с т р о к и , т. е. а р г у м е н т о в, п е р е д а н н ы х п р о г р а м м е и з к о м а н д н о й с т р о к и.

 

Е с л и в ы и с п о л ь з у е т е с р е д у р а з р а б о т к и 2 д л я н а п и с а н и я и з а п у с к а п р о г р а м м, п о и щ и т е г д е -н и б у д ь в е ё м е н ю в о з м о ж н о с т ь п е р е д а в а т ь п а р а м е т р ы к о м а н д -н о й с т р о к и.

 

н а ш е м п р и м е р е, к о г д а м ы з а п у с к а е м “python using_sys. py we are arguments”, м ы з а п у с к а е м м о д у л ь using_sys. py к о м а н д о й python, а в с ё, ч т о с л е д у е т д а л е е – а р г у м е н т ы, п е р е д а в а е м ы е п р о г р а м м е 3. Python с о х р а н я е т а р -г у м е н т ы к о м а н д н о й с т р о к и в п е р е м е н н о й sys. argv д л я д а л ь н е й ш е г о и с п о л ь -з о в а н и я.

 

П о м н и т е, ч т о и м я з а п у с к а е м о г о с ц е н а р и я 4 в с е г д а я в л я е т с я п е р в ы м а р г у м е н -т о м в с п и с к е sys. argv. Т а к ч т о в п р и в е д ё н н о м п р и м е р е 'using_sys. py' б у д е т э л е м е н т о м sys. argv[0], 'we' – sys. argv[1], 'are' – sys. argv[2], а 'arguments' – sys. argv[3]. П о м н и т е, ч т о в Python н у м е р а ц и я н а ч и н а е т с я с 0, а н е с 1.

 

sys. path с о д е р ж и т с п и с о к и м ё н к а т а л о г о в, о т к у д а и м п о р т и р у ю т с я м о д у л и. З а м е т ь т е, ч т о п е р в а я с т р о к а в sys. path п у с т а; э т а п у с т а я с т р о к а п о к а з ы в а е т, ч т о т е к у щ а я д и р е к т о р и я т а к ж е я в л я е т с я ч а с т ь ю sys. path, к о т о р а я с о в п а д а е т с о з н а ч е н и е м п е р е м е н н о й о к р у ж е н и я PYTHONPATH. Э т о о з н а ч а е т, ч т о м о д у л и,

 

И н и ц и а л и з а ц и я – р я д д е й с т в и й, п р о и з в о д и м ы х п р и н а ч а л ь н о й з а г р у з к е (п р и м. п е р е в. )

IDE - о т а н г л. “Integrated Development Environment” – «и н т е г р и р о в а н н а я с р е д а р а з р а б о т к и » (п р и м. п е -

р е в. )

3 “we are arguments” - а н г л. «м ы а р г у м е н т ы » (п р и м. п е р е в. )

4 П р о г р а м м у н а и н т е р п р е т и р у е м о м я з ы к е п р о г р а м м и р о в а н и я т а к ж е н а з ы в а ю т с ц е н а р и е м и л и с к р и п т о м

(п р и м. п е р е в. )


 

72                                                                                                                                                   Г л а в а 11. М о д у л и


A Byte of Python (Russian), В е р с и я 2. 01

 

 

р а с п о л о ж е н н ы е в т е к у щ е м к а т а л о г е, м о ж н о и м п о р т и р о в а т ь н а п р я м у ю. В п р о -т и в н о м с л у ч а е п р и д ё т с я п о м е с т и т ь с в о й м о д у л ь в о д и н и з к а т а л о г о в, п е р е ч и с -л е н н ы х в sys. path.

 

П о м н и т е, ч т о т е к у щ и й к а т а л о г – э т о к а т а л о г, в к о т о р о м б ы л а з а п у щ е н а п р о -г р а м м а. В ы п о л н и т е import os; print(os. getcwd()), ч т о б ы у з н а т ь т е к у щ и й к а т а л о г п р о г р а м м ы.

 

 

11. 1 Ф а й л ы б а й т к о д а . pyc

 

И м п о р т м о д у л я – о т н о с и т е л ь н о д о р о г о с т о я щ е е м е р о п р и я т и е, п о э т о м у Python п р е д п р и -н и м а е т н е к о т о р ы е т р ю к и д л я у с к о р е н и я э т о г о п р о ц е с с а. О д и н и з с п о с о б о в – с о з д а т ь б а й т -к о м п и л и р о в а н н ы е ф а й л ы (и л и б а й т к о д )с р а с ш и р е н и е м. pyc, к о т о р ы е я в л я ю т с я н е к о й п р о м е ж у т о ч н о й ф о р м о й, в к о т о р у ю Python п е р е в о д и т п р о г р а м м у (п о м н и т е р а з д е л “В в е д е н и е ” о т о м, к а к р а б о т а е т Python? ). Т а к о й ф а й л. pycп о л е з е н п р и и м п о р т е м о д у л я в с л е д у ю щ и й р а з в д р у г у ю п р о г р а м м у – э т о п р о и з о й д ё т н а м н о г о б ы с т р е е, п о с к о л ь к у з н а -ч и т е л ь н а я ч а с т ь о б р а б о т к и, т р е б у е м о й п р и и м п о р т е м о д у л я, б у д е т у ж е п р о д е л а н а. Э т о т б а й т к о д т а к ж е я в л я е т с я п л а т ф о р м о -н е з а в и с и м ы м.

 

П р и м е ч а н и е: О б ы ч н о ф а й л ы. pycс о з д а ю т с я в т о м ж е к а т а л о г е, г д е р а с п о л о ж е н ы и с о о т -в е т с т в у ю щ и е и м ф а й л ы . py. Е с л и Python н е м о ж е т п о л у ч и т ь д о с т у п д л я з а п и с и ф а й л о в в э т о т к а т а л о г, ф а й л ы . pyc с о з д а н ы н е б у д у т.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.