def add(x, y):
return x + y
Return bir qiymat qaytaradi. Bizning holatda, funksiya x va y yig'indisini qaytaradi.
Endi biz uni chaqirishimiz mumkin:
>>> add(1, 10)
11
>>> add('abc', 'def')
'abcdef'
Funktsiya har qanday murakkablikda bo'lishi mumkin va har qanday ob'ektlarni qaytarishi mumkin (ro'yxatlar, tuplar va hatto funktsiyalar!):
>>> def newfunc(n):
... def myfunc(x):
... return x + n
... return myfunc
... >>> new = newfunc(100) # new - это функция >>> new(200)
300
Funksiya qaytarish iborasi bilan tugamasligi mumkin va funksiya None qaytarmaydi :
>>> def func():
... pass ... >>> print(func())
None
Funktsiya argumentlari Funktsiya ixtiyoriy miqdordagi argumentlarni qabul qilishi yoki umuman qabul qilmasligi mumkin. O'zboshimchalik bilan ko'p argumentlarga ega bo'lgan funktsiyalar, pozitsion va nomlangan argumentlarga ega bo'lgan funktsiyalar majburiy va ixtiyoriydir.
>>> def func(a, b, c=2): # c - необязательный аргумент ... return a + b + c
... >>> func(1, 2) # a = 1, b = 2, c = 2 (по умолчанию) 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 не определен Traceback (most recent call last):
File "", line 1, in
func(a=3, c=6)
TypeError: func() takes at least 2 arguments (2 given)
Funktsiya, shuningdek, pozitsion argumentlarning o'zgaruvchan sonini olishi mumkin, keyin * ism oldiga qo'yiladi:
>>> def func(*args):
... return args
... >>> func(1, 2, 3, 'abc')
(1, 2, 3, 'abc')
>>> func()
()
>>> func(1)
(1,)
Misoldan ko'rinib turibdiki, args - bu funktsiyaga berilgan barcha argumentlarning yig'indisi va siz o'zgarmaydigan bilan xuddi tuple kabi ishlashingiz mumkin.
Funktsiya ixtiyoriy ravishda nomlangan argumentlarni qabul qilishi mumkin, keyin ** ism oldiga qo'yiladi: