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
Достарыңызбен бөлісу: