Хелпикс

Главная

Контакты

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





@staticmethod 4 страница



 

И м я: " Swaroop" В о з р а с т: " 25" О ц е н к и: " 75"

 

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

 

Ч т о б ы в о с п о л ь з о в а т ь с я н а с л е д о в а н и е м, п р и о п р е д е л е н и и к л а с с а м ы у к а з ы -


 

 

14. 6. Н а с л е д о в а н и е                                                                                                                                                109


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

 

 

в а е м и м е н а е г о б а з о в ы х к л а с с о в в в и д е к о р т е ж а, с л е д у ю щ е г о з а с р а з у з а е г о и м е н е м. Д а л е е м ы в и д и м, ч т о м е т о д __init__ б а з о в о г о к л а с с а в ы з ы в а е т с я я в -н о п р и п о м о щ и п е р е м е н н о й self, ч т о б ы и н и ц и а л и з и р о в а т ь ч а с т ь о б ъ е к т а, о т н о с я щ у ю с я к б а з о в о м у к л а с с у. Э т о о ч е н ь в а ж н о з а п о м н и т ь: Python н е в ы з ы -в а е т к о н с т р у к т о р б а з о в о г о к л а с с а а в т о м а т и ч е с к и – е г о н е о б х о д и м о в ы з ы в а т ь с а м о с т о я т е л ь н о в я в н о м в и д е.

 

З д е с ь ж е м ы в и д и м, к а к м о ж н о в ы з ы в а т ь м е т о д ы б а з о в о г о к л а с с а, п р е д в а р я я з а п и с ь и м е н и м е т о д а и м е н е м к л а с с а, а з а т е м п е р е д а в а я п е р е м е н н у ю self в м е -с т е с д р у г и м и а р г у м е н т а м и.

 

О б р а т и т е в н и м а н и е, ч т о п р и в ы з о в е м е т о д а tell и з к л а с с а SchoolMember э к з е м п л я р ы Teacher и л и Student м о ж н о и с п о л ь з о в а т ь к а к э к з е м п л я р ы

 

SchoolMember.

 

З а м е т ь т е т а к ж е, ч т о в ы з ы в а е т с я м е т о д tell и з п о д к л а с с а, а н е м е т о д tell и з к л а с с а SchoolMember. Э т о м о ж н о п о н я т ь с л е д у ю щ и м о б р а з о м: Python в с е г д а н а -ч и н а е т п о и с к м е т о д о в в с а м о м к л а с с е, ч т о о н и д е л а е т в д а н н о м с л у ч а е. Е с л и ж е о н н е н а х о д и т м е т о д а, о н н а ч и н а е т и с к а т ь м е т о д ы, п р и н а д л е ж а щ и е б а з о -в ы м к л а с с а м п о о ч е р е д и, в п о р я д к е, в к о т о р о м о н и п е р е ч и с л е н ы в к о р т е ж е п р и о п р е д е л е н и и к л а с с а.

 

З а м е ч а н и е п о т е р м и н о л о г и и: е с л и п р и н а с л е д о в а н и и п е р е ч и с л е н о б о л е е о д -н о г о к л а с с а, э т о н а з ы в а е т с я м н о ж е с т в е н н ы м н а с л е д о в а н и е м .

 

П а р а м е т р end и с п о л ь з у е т с я в м е т о д е tell() д л я т о г о, ч т о б ы н о в а я с т р о к а н а -ч и н а л а с ь ч е р е з п р о б е л п о с л е в ы з о в а print().

 

 

14. 7 М е т а к л а с с ы 5

 

о б ш и р н о й т е м е о б ъ е к т н о -о р и е н т и р о в а н н о г о п р о г р а м м и р о в а н и я с у щ е с т в у е т е щ ё м н о -г о в с е г о, н о м ы л и ш ь с л е г к а к о с н ё м с я н е к о т о р ы х к о н ц е п ц и й, ч т о б ы в ы п р о с т о з н а л и о б и х с у щ е с т в о в а н и и.

 

Т о ч н о т а к ж е, к а к к л а с с ы и с п о л ь з у ю т с я д л я с о з д а н и я о б ъ е к т о в, м о ж н о и с п о л ь з о в а т ь м е -т а к л а с с ы д л я с о з д а н и я к л а с с о в. М е т а к л а с с ы с у щ е с т в у ю т д л я и з м е н е н и я и л и д о б а в л е н и я н о в о г о п о в е д е н и я в к л а с с ы.

 

Д а в а й т е р а с с м о т р и м п р и м е р. Д о п у с т и м, м ы х о т и м б ы т ь у в е р е н ы, ч т о м ы в с е г д а с о з д а ё м и с к л ю ч и т е л ь н о э к з е м п л я р ы п о д к л а с с о в к л а с с а SchoolMember, и н е с о з д а ё м э к з е м п л я р ы с а м о г о к л а с с а SchoolMember.

 

Д л я д о с т и ж е н и я э т о й ц е л и м ы м о ж е м и с п о л ь з о в а т ь к о н ц е п ц и ю п о д н а з в а н и е м «а б -с т р а к т н ы е б а з о в ы е к л а с с ы ». Э т о о з н а ч а е т, ч т о т а к о й к л а с с а б с т р а к т е н , т. е. я в л я е т с я л и ш ь н е к о й к о н ц е п ц и е й, н е п р е д н а з н а ч е н н о й д л я и с п о л ь з о в а н и я в к а ч е с т в е р е а л ь н о г о к л а с с а.

 

в о р и г и н а л ь н о й в е р с и и к н и г и э т о т п а р а г р а ф н е в и д и м д л я ч и т а т е л е й, т а к к а к н а х о д и т с я в к о м м е н т а -р и и с п о м е т к о й а в т о р а “It is too sudden to introduce this concept here. ”, ч т о о з н а ч а е т «С л и ш к о м н е о ж и д а н н о п р е д с т а в л е н и е э т о й к о н ц е п ц и и з д е с ь. »’ (п р и м. п е р е в. )


 

110                                 Г л а в а 14. О б ъ е к т н о -о р и е н т и р о в а н н о е п р о г р а м м и р о в а н и е


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

 

 

М ы м о ж е м о б ъ я в и т ь н а ш к л а с с к а к а б с т р а к т н ы й б а з о в ы й к л а с с п р и п о м о щ и в с т р о е н н о г о м е т а к л а с с а п о и м е н и ABCMeta.

 

#! /usr/bin/env python

 

# Filename: inherit_abc. py

 

from abc import *

 

class SchoolMember (metaclass=ABCMeta):

 

'''П р е д с т а в л я е т л ю б о г о ч е л о в е к а в ш к о л е. ''' def __init__(self, name, age):

self. name = name

 

self. age = age

 

print ('(С о з д а н SchoolMember: {0})'. format(self. name))

 



  

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