Хелпикс

Главная

Контакты

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





@staticmethod. @abstractmethod



@abstractmethod

 

def tell(self):

 

'''В ы в е с т и и н ф о р м а ц и ю. '''

 

print ('И м я: " {0}" В о з р а с т: " {1}" '. format(self. name, self. age), end=" " )

 

class Teacher (SchoolMember):

 

'''П р е д с т а в л я е т п р е п о д а в а т е л я. '''

 

def __init__(self, name, age, salary): SchoolMember. __init__(self, name, age) self. salary = salary

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

 

def tell(self):

 

SchoolMember. tell(self)

 

print ('З а р п л а т а: " {0: d}" '. format(self. salary))

 

class Student (SchoolMember):

 

'''П р е д с т а в л я е т с т у д е н т а. '''

 

def __init__(self, name, age, marks): SchoolMember. __init__(self, name, age) self. marks = marks

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

 

def tell(self):

 

SchoolMember. tell(self)

 

print ('О ц е н к и: " {0: d}" '. format(self. marks))

 

= Teacher('Mrs. Shrividya', 40, 30000) s = Student('Swaroop', 25, 75)

 

#m = SchoolMember('abc', 10)

 

Э т о п р и в е д ё т к о ш и б к е: " TypeError: Can't instantiate abstract class

SchoolMember with abstract methods tell"


 

 

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


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

 

print ()#п е ч а т а е т п у с т у ю с т р о к у

 

members = [t, s]

 

for member in members:

 

member. tell() # р а б о т а е т к а к д л я п р е п о д а в а т е л я, т а к и д л я с т у д е н т а

 

В ы в о д:

 

$ python3 inherit. py

 

(С о з д а н SchoolMember: Mrs. Shrividya)

 

(С о з д а н Teacher: Mrs. Shrividya)

 

(С о з д а н SchoolMember: Swaroop)

 

(С о з д а н Student: Swaroop)

 

И м я: " Mrs. Shrividya" В о з р а с т: " 40" З а р п л а т а: " 30000"

 

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

 

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

 

М ы м о ж е м о б ъ я в и т ь м е т о д tell к л а с с а SchoolMember а б с т р а к т н ы м, и т а к и м о б р а з о м а в -т о м а т и ч е с к и з а п р е т и м с о з д а в а т ь э к з е м п л я р ы к л а с с а SchoolMember.

 

Т е м н е м е н е е, м ы м о ж е м р а б о т а т ь с э к з е м п л я р а м и Teacher и Student т а к, к а к б у д т о о н и э к з е м п л я р ы SchoolMember, п о с к о л ь к у о н и я в л я ю т с я п о д к л а с с а м и.

 

 

14. 8 Р е з ю м е

 

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

 

Д а л е е м ы у з н а е м, к а к р а б о т а т ь с в в о д о м /в ы в о д о м и п о л у ч а т ь д о с т у п к ф а й л а м в Python.


 

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


 

В в о д -в ы в о д

 

 

Р а н о и л и п о з д н о в о з н и к а ю т с и т у а ц и и, к о г д а п р о г р а м м а д о л ж н а в з а и м о д е й с т в о в а т ь с п о л ь з о в а т е л е м. Н а п р и м е р, п р и н я т ь к а к и е -н и б у д ь д а н н ы е о т п о л ь з о в а т е л я, а з а т е м в ы в е -с т и р е з у л ь т а т ы. Д л я э т о г о п р и м е н я ю т с я ф у н к ц и и input() и print() с о о т в е т с т в е н н о.

 

Д л я в ы в о д а м о ж н о т а к ж е и с п о л ь з о в а т ь р а з л и ч н ы е м е т о д ы к л а с с а str (с т р о к а ). К п р и м е р у, п р и п о м о щ и м е т о д а rjust м о ж н о п о л у ч и т ь с т р о к у, в ы р а в н е н н у ю п о п р а в о м у к р а ю к у к а з а н н о й ш и р и н е. С м. help(str) д л я б о л е е п о д р о б н о г о о п и с а н и я.

 

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

 

 

15. 1 В в о д о т п о л ь з о в а т е л я

 

С о х р а н и т е э т у п р о г р а м м у к а к user_input. py:

 

def reverse(text):

 

return text[:: -1]

 

def is_palindrome(text):

 

return text==reverse(text)

 

something = input('В в е д и т е т е к с т: ')

 

if (is_palindrome(something)):

 

print (" Д а, э т о п а л и н д р о м " )

 

else:

 

print (" Н е т, э т о н е п а л и н д р о м " )

 

В ы в о д:

 

$ python3 user_input. py

 

В в е д и т е т е к с т: с э р

 

Н е т, э т о н е п а л и н д р о м

 

$ python3 user_input. py

 

В в е д и т е т е к с т: м а д а м

 

Д а, э т о п а л и н д р о м


 

 


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

 

$ python3 user_input. py

 

В в е д и т е т е к с т: т о п о т

 

Д а, э т о п а л и н д р о м

 

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

 

М ы п р и м е н я е м о п е р а ц и ю в ы р е з к и д л я п е р е в о р а ч и в а н и я т е к с т а. М ы у ж е в и д е л и, к а к с о з д а ю т с я в ы р е з к и и з п о с л е д о в а т е л ь н о с т е й п р и п о м о щ и к о д а “seq[a: b]”, н а ч и н а я с п о з и ц и и a д о п о з и ц и и b. Н о в е д ь м ы т а к ж е м о ж е м у к а -з а т ь и т р е т и й а р г у м е н т, о п р е д е л я ю щ и й ш а г , с к о т о р ы м п р о и з в о д и т с я в ы р е з -к а. П о у м о л ч а н и ю ш а г р а в е н 1, п о э т о м у и в о з в р а щ а е т с я н е п р е р ы в н ы й ф р а г -м е н т т е к с т а. У к а з а н и е о т р и ц а т е л ь н о г о ш а г а, т. е. -1 п р и в е д ё т к в ы в о д у т е к с т а в о б р а т н о м п о р я д к е.

 

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

 

М ы с ч и т ы в а е м э т о т т е к с т и в ы с т р а и в а е м е г о в о б р а т н о м п о р я д к е. Е с л и п е -р е в ё р н у т ы й и и с х о д н ы й т е к с т о д и н а к о в ы, з н а ч и т в в е д ё н н ы й т е к с т я в л я е т с я п а л и н д р о м о м.

 



  

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