1. Python tili imkoniyatlari Pythonni ko`chirish


Funksiyalarning argumentlari



Yüklə 2,19 Mb.
səhifə33/78
tarix19.12.2023
ölçüsü2,19 Mb.
#152124
1   ...   29   30   31   32   33   34   35   36   ...   78
1. Python tili imkoniyatlari Pythonni ko`chirish

Funksiyalarning argumentlari.


Funksiyalar ixtiyoriy sondagi argumentlarni qabul qilishi yoki umuman birorta ham argument qabul qilmasligi mumkin. Bundan tashqari ixtiyoriy sonli argumentli, pozitsiyali va nomlangan argumentli hamda majburiy va majburiy bo`lmagan argumentli funksiyalar ham mavjud.

>>> def func(a, b, c=2): # c – bu majburiy bo`lmagan argumentdir
... return a + b + c
...
>>> func(1, 2) # a = 1, b = 2, c = 2 (odatiy qiymat)
5
>>> func(1, 2, 3) # a = 1, b = 2, c = 3
6
>>> func(a=1, b=3) # a = 1, b = 3, c = 2
6
>>> func(a=3, c=6) # a = 3, c = 6, b aniqlanmagan
Traceback (most recent call last):
File "", line 1, in
func(a=3, c=6)
TypeError: func() takes at least 2 arguments (2 given)



>>> def func(*args):
... return args
...
>>> func(1, 2, 3, 'abc')
(1, 2, 3, 'abc')
>>> func()
()
>>> func(1)
(1,)

Funksiya bundan tashqari pozitsiyali argumantlarning o`zgarib turuvchi sonini qabul qilishi ham mumkin. U holda nomdan oldin * belgisi qo`yiladi.


Misolda ko`rinib turibdiki, args – bu funksiyaning barcha uzatilgan argumantlaridan iborat kortejdir, va bu o`zgaruvchi bilan xuddi kortej kabi ishlash mumkin ekan.



>>> def func(**kwargs):
... return kwargs
...
>>> func(a=1, b=2, c=3)
{'a': 1, 'c': 3, 'b': 2}
>>> func()
{}
>>> func(a='python')
{'a': 'python'}

Funksiya nomlangan argumentlarning ham ixtiyoriy sonini qabul qilishi mumkin. Bu holda o`zgaruvchidan oldin ** belgisi qo`yiladi. kwargs o`zgaruvchisida bizda o`z ixtiyorimiz bo`yicha istagan amallarni qo`llashimiz mumkin bo`lgan lug`at joylashgan.


Anonim funksiyalar, lambda instruksiyasi



>>> func = lambda x, y: x + y
>>> func(1, 2)
3
>>> func('a', 'b')
'ab'
>>> (lambda x, y: x + y)(1, 2)
3
>>> (lambda x, y: x + y)('a', 'b')
'ab'

Anonim funksiyalar faqatgina bitta ko`rsatmadan iborat bo`lishi mumkin, lekin ular shunga mos tarzda juda tez bajariladi ham. Anonim funksiyalar lambda ko`rsatmasi yordamida yaratiladi. Bundan tashqri ularni biz def func() da bajarganimiz kabi o`zgaruvchilarga moslashtirish ham shart emas.


lambda funksiyaga odatiy funksiyadan farqli tarzda return ko`rsatmasi talab etilmaydi, boshqa barcha jihatlari bo`yicha u oddiy funksiyalardan farq qilmaydi:



>>> func = lambda *args: args
>>> func(1, 2, 3, 4)
(1, 2, 3, 4)

20-bob


Yüklə 2,19 Mb.

Dostları ilə paylaş:
1   ...   29   30   31   32   33   34   35   36   ...   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ə