Python тілі негіздері (әдістемелік құрал)



Pdf көрінісі
бет24/25
Дата13.04.2023
өлшемі1,76 Mb.
#82134
түріПрограмма
1   ...   17   18   19   20   21   22   23   24   25
 
__call__әдісі 
_call__ – класс данасын шақырған кезде іске қосылады. Мысалға қарайық: 
class A: def__call__(self, z):
return z * z
a = A()
print(a(8))
Нәтижесі:
64 
__str__ әдісі 
Келесі арнайы әдіс – бұл __str__ әдісі. Оны класс данасын жол түрінде жазу қажет 
болғанда қолданамыз.
class A:
def__str__(self):
return "z*6"
a = A()
print(a)
Нәтижесі:


31 
z*6 
Super әдісі 
Python тілінде әдетте объектілерге қолданылатын super() әдісі бар. Оның негізгі міндеті – 
мұрагер класта ата-ана класының әдістерін пайдалану мүмкіндігі. 
Келесі мысал толық емес, сондықтан орындалмайды, дегенмен де оны көрсете кету керек:
class A:
def__init__(self):
print(u'A класының конструкторы')
# A класының мұрагері
class B(A):
def__init__(self):
print(u'B класының конструкторы')
super(B, self).__init__()
a = B()
Нәтижесі:
В класының конструкторы
ReferenceError: $$super is not defined 
Статикалық әдістер 
Класс данасын құрмай-ақ класс ішінде қолжетімді болатын әдісті құруға болады. Ол үшін 
класс ішінде әдісті анықтамастан бұрын @staticmethod декораторын көрсету керек.
class A: 
@staticmethod
def mymethod(a, b):
return a + b
print(A.mymethod(12, 13)) 
Нәтижесі:
25 
Құжатқа қолжетімді болу үшін __doc__ арнайы әдісі қарастырылған. Python интерпре-
таторы кластың немесе функцияның бастапқы кодын өңдеген кезде құжаттау жолдарын 
табады да, оларды берілген объектінің __doc__ атрибутының мәні етеді. Мысал жұмыс 
істемейді, бірақ сонда да үлгісін көрсетейік:
class A:
"'Бұл класты құжаттау жолдары.
Ол үш рет біреулік тырнақшаға алынған'"
def test(self):
""" Бұл test әдісін құжаттау"""
pass
print(A.__doc__)
print(A.test.__doc__) 
AttributeError: 'А' class has no attribute '__doc__' 
Декораторлар 
Декоратор дегеніміз – функция немесе кластың тәртібін өзгерту тәсілі. Бұл Python тілінің 
ең бір түсініксіз тақырыбы әрі онымен жұмыс істеу де өте күрделі. @staticmethod атты декора-
тормен статикалық әдісте кездестік. 


32 
def simpledecorator(fn):
def decorate():
print("Орындауға дейін")
print(fn())
ргіпІ("Орындаудан кейін")
return decorate 
@simple_decorator
def test1():
return "test1() орындау" 
test1()
Нәтижесі:
Орындауға дейін
Test1() орындау
Орындаудан кейін 
Генераторлар 
Генераторлар дегеніміз – итерацияланатын объектілер, бірак, жалпы жағдайда, оны бір-ақ 
рет қолдана аламыз. Себебі, олар мәндердің барлығын жадыда сақтамайды: сұрақ берген кезде 
ғана мәнді туындатады.
Yield – дегеніміз return сияқты қолданылатын түйінді сөз. Айырмашылығы – бұл жағдайда 
функция генератор орнына мәнді кері қайтарады. Мысал жұмыс істемейді, бірақ сонда да 
үлгісін көрсетейік:
# Қарапайым генератор
generator = (х * х for х in range(3))
for і in generator:
print(i)
# Yield
def generator():
for i in (1, 2, 3):
yield i
g = generator() # генератор құрамыз
print(g) 
for i in g:
print(i) 
Нәтижесі: 
0
1
4
TypeError: generator () takes 0 positional arguments but more were given 


Достарыңызбен бөлісу:
1   ...   17   18   19   20   21   22   23   24   25




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет