Хелпикс

Главная

Контакты

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





import sys 9 страница



 

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


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

 

 

О б р а т и т е в н и м а н и е н а и с п о л ь з о в а н и е +=, к о т о р ы й п р е д с т а в л я е т с о б о й с о к р а -щ ё н н ы й о п е р а т о р, п о з в о л я ю щ и й в м е с т о x = x + y п р о с т о н а п и с а т ь x += y.

 

Е с л и в а м н у ж н ы а р г у м е н т ы, п е р е д а в а е м ы е т о л ь к о п о к л ю ч у, н о н е н у ж е н п а -р а м е т р с о з в ё з д о ч к о й, т о м о ж н о п р о с т о у к а з а т ь о д н у з в ё з д о ч к у б е з у к а з а н и я и м е н и: def total(initial=5, *, extra_number).

 

 

10. 9 О п е р а т о р «return»

 

О п е р а т о р return и с п о л ь з у е т с я д л я в о з в р а т а 5 и з ф у н к ц и и, т. е. д л я п р е к р а щ е н и я е ё р а б о т ы

в ы х о д а и з н е ё. П р и э т о м м о ж н о т а к ж е в е р н у т ь н е к о т о р о е з н а ч е н и е и з ф у н к ц и и.

 

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

 

#! /usr/bin/python

 

# Filename: func_return. py

 

def maximum(x, y):

 

if x> y:

 

return x

 

elif x==y:

 

return 'Ч и с л а р а в н ы. '

 

else:

 

return y

 

print (maximum(2, 3))

 

В ы в о д:

 

python func_return. py

 

 

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

 

Ф у н к ц и я maximum в о з в р а щ а е т м а к с и м а л ь н ы й и з д в у х п а р а м е т р о в, к о т о р ы е в д а н н о м с л у ч а е п е р е д а ю т с я е й п р и в ы з о в е. О н а и с п о л ь з у е т о б ы ч н ы й у с л о в н ы й о п е р а т о р if.. else д л я о п р е д е л е н и я н а и б о л ь ш е г о ч и с л а, а з а т е м в о з в р а щ а е т э т о ч и с л о.

 

О б р а т и т е в н и м а н и е, ч т о о п е р а т о р return б е з у к а з а н и я в о з в р а щ а е м о г о з н а ч е н и я э к в и в а -л е н т е н в ы р а ж е н и ю return None. None – э т о с п е ц и а л ь н ы й т и п д а н н ы х в Python, о б о з н а ч а -ю щ и й н и ч е г о. К п р и м е р у, е с л и з н а ч е н и е п е р е м е н н о й у с т а н о в л е н о в None, э т о о з н а ч а е т, ч т о е й н е п р и с в о е н о н и к а к о г о з н а ч е н и я.

 

К а ж д а я ф у н к ц и я с о д е р ж и т в н е я в н о й ф о р м е о п е р а т о р return None в к о н ц е, е с л и в ы н е у к а з а л и с в о е г о с о б с т в е н н о г о о п е р а т о р а return. В э т о м м о ж н о у б е д и т ь с я, з а п у с т и в

 

return – а н г л. «в о з в р а т » (п р и м. п е р е в. )


 

10. 9. О п е р а т о р «return»                                                                                                                                         67


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

 

 

print(someFunction()), г д е ф у н к ц и я someFunction – э т о к а к а я -н и б у д ь ф у н к ц и я, н е и м е -ю щ а я о п е р а т о р а return в я в н о м в и д е. Н а п р и м е р:

 

def someFunction():

 

pass

 

О п е р а т о р pass и с п о л ь з у е т с я в Python д л я о б о з н а ч е н и я п у с т о г о б л о к а к о м а н д.

 

П р и м е ч а н и е: С у щ е с т в у е т в с т р о е н н а я ф у н к ц и я max, в к о т о р о й у ж е р е а л и з о в а н ф у н к ц и -о н а л «п о и с к м а к с и м у м а », т а к ч т о п о л ь з у й т е с ь э т о й в с т р о е н н о й ф у н к ц и е й, г д е э т о в о з -м о ж н о.

 

10. 10 С т р о к и д о к у м е н т а ц и и 6

 

Python и м е е т о с т р о у м н у ю о с о б е н н о с т ь, н а з ы в а е м у ю с т р о к а м и д о к у м е н т а ц и и , о б ы ч н о о б о з н а ч а е м у ю с о к р а щ ё н н о docstrings. Э т о о ч е н ь в а ж н ы й и н с т р у м е н т, к о т о р ы м в ы о б я з а -т е л ь н о д о л ж н ы п о л ь з о в а т ь с я, п о с к о л ь к у о н п о м о г а е т л у ч ш е д о к у м е н т и р о в а т ь п р о г р а м -м у и о б л е г ч а е т е ё п о н и м а н и е. П о р а з и т е л ь н о, н о с т р о к у д о к у м е н т а ц и и м о ж н о п о л у ч и т ь, н а п р и м е р, и з ф у н к ц и и, д а ж е в о в р е м я в ы п о л н е н и я п р о г р а м м ы!

 

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

 

def printMax(x, y):

 

'''В ы в о д и т м а к с и м а л ь н о е и з д в у х ч и с е л.

 

О б а з н а ч е н и я д о л ж н ы б ы т ь ц е л ы м и ч и с л а м и. '''

 

x = int(x) # к о н в е р т и р у е м в ц е л ы е, е с л и в о з м о ж н о

 

y = int(y)

 

if x> y:

 

print (x, 'н а и б о л ь ш е е ')

 

else:

 

print (y, 'н а и б о л ь ш е е ')

 

printMax(3, 5)

 

print (printMax. __doc__)

 

В ы в о д:

 

python func_doc. py

 

5 н а и б о л ь ш е е

 

В ы в о д и т м а к с и м а л ь н о е и з д в у х ч и с е л.

 

О б а з н а ч е н и я д о л ж н ы б ы т ь ц е л ы м и ч и с л а м и.

 

DocString - о т а н г л. Doc umentation String ” – «с т р о к а д о к у м е н т а ц и и » (п р и м. п е р е в. )


 

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


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

 

 

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

 

С т р о к а в п е р в о й л о г и ч е с к о й с т р о к е ф у н к ц и и я в л я е т с я с т р о к о й д о к у м е н т а ц и и д л я э т о й ф у н к ц и и. О б р а т и т е в н и м а н и е н а т о, ч т о с т р о к и д о к у м е н т а ц и и п р и -м е н и м ы т а к ж е к м о д у л я м и к л а с с а м , о к о т о р ы х м ы у з н а е м в с о о т в е т с т в у ю щ и х г л а в а х.

 

С т р о к и д о к у м е н т а ц и и п р и н я т о з а п и с ы в а т ь в ф о р м е м н о г о с т р о ч н о й 7 с т р о к и, г д е п е р в а я с т р о к а н а ч и н а е т с я с з а г л а в н о й б у к в ы и з а к а н ч и в а е т с я т о ч к о й. В т о -р а я с т р о к а о с т а в л я е т с я п у с т о й, а п о д р о б н о е о п и с а н и е н а ч и н а е т с я с т р е т ь е й. В а м н а с т о я т е л ь н о р е к о м е н д у е т с я с л е д о в а т ь т а к о м у ф о р м а т у д л я в с е х с т р о к д о к у м е н т а ц и и в с е х в а ш и х н е т р и в и а л ь н ы х ф у н к ц и й.

 

Д о с т у п к с т р о к е д о к у м е н т а ц и и ф у н к ц и и printMax м о ж н о п о л у ч и т ь с п о м о -щ ь ю а т р и б у т а э т о й ф у н к ц и и (т. е. и м е н и, п р и н а д л е ж а щ е г о е й ) __doc__ (о б р а -т и т е в н и м а н и е н а д в о й н о е п о д ч ё р к и в а н и е ). П р о с т о п о м н и т е, ч т о Python п р е д -с т а в л я е т в с ё в в и д е о б ъ е к т о в, в к л ю ч а я ф у н к ц и и. М ы у з н а е м б о л ь ш е о б о б ъ е к -т а х в г л а в е о к л а с с а х .

 

Е с л и в ы п о л ь з о в а л и с ь ф у н к ц и е й help() в Python, з н а ч и т в ы у ж е в и д е л и с т р о к и д о к у -м е н т а ц и и. Э т а ф у н к ц и я п р о с т о -н а п р о с т о с ч и т ы в а е т а т р и б у т __doc__ с о о т в е т с т в у ю щ е й ф у н к ц и и и а к к у р а т н о в ы в о д и т е г о н а э к р а н. В ы м о ж е т е п р о в е р и т ь е ё н а р а с с м о т р е н н о й в ы ш е ф у н к ц и и: п р о с т о в к л ю ч и т е help(printMax) в т е к с т п р о г р а м м ы. Н е з а б у д ь т е н а ж а т ь к л а в и ш у q д л я в ы х о д а и з с п р а в к и (help).

 

Т о ч н о т а к ж е а в т о м а т и ч е с к и е и н с т р у м е н т ы м о г у т п о л у ч а т ь д о к у м е н т а ц и ю и з п р о г р а м -м ы. И м е н н о п о э т о м у я н а с т о я т е л ь н о р е к о м е н д у ю в а м и с п о л ь з о в а т ь с т р о к и д о к у м е н т а ц и и д л я л ю б о й н е т р и в и а л ь н о й ф у н к ц и и, к о т о р у ю в ы п и ш е т е. К о м а н д а pydoc, п о с т а в л я е м а я в м е с т е с п а к е т о м Python, р а б о т а е т а н а л о г и ч н о ф у н к ц и и help().

 

 

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

 

Ф у н к ц и и и м е ю т е щ ё о д н у д о п о л н и т е л ь н у ю в о з м о ж н о с т ь, н а з ы в а е м у ю а н н о т а ц и я м и, к о -т о р ы е п р е д о с т а в л я ю т о т л и ч н ы й с п о с о б с о п р о в о ж д е н и я к а ж д о г о п а р а м е т р а, р а в н о к а к и в о з в р а щ а е м о г о з н а ч е н и я д о п о л н и т е л ь н о й и н ф о р м а ц и е й. П о с к о л ь к у с а м я з ы к Python н е и н т е р п р е т и р у е т э т и а н н о т а ц и и к а к и м -л и б о с п о с о б о м (э т о т ф у н к ц и о н а л о т в о д и т с я п о -с т о р о н н и м б и б л и о т е к а м ), м ы о п у с т и м э т у в о з м о ж н о с т ь и з н а ш е г о о б с у ж д е н и я. Е с л и в а м и н т е р е с н о п о ч и т а т ь о б а н н о т а ц и я х, п р о с м о т р и т е PEP 3107.

 

10. 12 Р е з ю м е

 

М ы р а с с м о т р е л и д о с т а т о ч н о м н о г о а с п е к т о в ф у н к ц и й, н о т е м н е м е н е е, в ы д о л ж н ы п о -н и м а т ь, ч т о э т о д а л е к о н е в с е и х а с п е к т ы. В т о ж е в р е м я, м ы о х в а т и л и б о л ь ш и н с т в о т о г о, с ч е м в ы б у д е т е с т а л к и в а т ь с я п р и п о в с е д н е в н о м и с п о л ь з о в а н и и ф у н к ц и й в Python.



  

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