1. Python tili imkoniyatlari Pythonni ko`chirish


Qanday qilib, nisbatan yuqoriroq darajali funksiyalar yaratish mumkin?



Yüklə 2,19 Mb.
səhifə74/78
tarix19.12.2023
ölçüsü2,19 Mb.
#152124
1   ...   70   71   72   73   74   75   76   77   78
1. Python tili imkoniyatlari Pythonni ko`chirish

Qanday qilib, nisbatan yuqoriroq darajali funksiyalar yaratish mumkin?


Ikki xil yo`l bor: ichki funksiyalardan yoki chaqiriladigan ob`yektlardan foydalanish. Masalan, ichki funksiyalardan foydalanishni ko`raylik:

def linear(a, b):
def result(x):
return a * x + b
return result

Chaqiriladigan ob`yektdan foydalanish:



class linear:

def __init__(self, a, b):


self.a, self.b = a, b
def __call__(self, x):
return self.a * x + self.b



taxes = linear(0.3, 2)

Ikkala holatda ham,


taxes(10e6) == 0.3 * 10e6 + 2 funksiyani beradi.


Chaqiriladigan ob`yektdan foydalanish nisbatan sekinroq va natijada kod ko`proq bo`ladi. Lekin bir nechta funksiyalar o`z merosiyliklari yordamida signaturalarini bo`lishlari mumkin bo`ladi:

class exponential(linear):
# __init__ meroslanadi
def __call__(self, x):
return self.a * (x ** self.b)

Ob`yekt bir nechta chaqiruvlar uchun ham o`zining holatini saqlab qolishi mumkin:



class counter:

value = 0


def set(self, x):


self.value = x
def up(self):
self.value = self.value + 1
def down(self):
self.value = self.value - 1
count = counter()
inc, dec, reset = count.up, count.down, count.set

Bu yerda inc, dec va resetlar aynan bitta o`zgaruvchini bo`lishayotgan funksiyalar rolida ishlamoqda.




Pythonda ob`yektni qanday qilib nusxalash mumkin?


Umuman olganda copy moduli yordamida.

newdict = olddict.copy()

Ba`zi ob`yektlarni undan ham oddiyroq usulda nusxalash mumkin. Lug`atlar copy metodiga egalar:





new_l = l[:]

Ketma-ketliklar kesimlar yordamida nusxalanishi mumkin:





Yüklə 2,19 Mb.

Dostları ilə paylaş:
1   ...   70   71   72   73   74   75   76   77   78




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə