Репост из: Python dasturlash maktabi
Funksiya chaqirilganda argumentlar soni teng bo'lmasa TypeError xatoligini qaytaradi.
def func(argument1, argument2, argument3):
print(argument1 * argument2 + argument3)
func(2, 6)
TypeError: func() missing 1 required positional argument: 'argument3'
Funksiyalarda o'zgaruvchan miqdordagi argumentlarni uzatish uchun maxsus belgilardan *, ** foydalaniladi.
*args (kalit-qiymatsiz argumentlar)
**kwargs (kalit-qiymatli argumentlar)
args va kwargs shunchaki argumentlar ro'yxatiga berilgan nom.Bu nomni boshqa istalgan nomga o'zgartirishingiz mumkin.
Masalan: *kalitsiz va **kalitli. Lekin dastur biror jamoa tomonidan yoziladigan bo'lsa yoki dastur kodi sotilishi rejalashtirilgan bo'lsa argumentlar to'plamini args va kwargs kabi nomlash maqsadga muvofiqdir.
Argsga misol:
def func(arg1, *arg):
print('Birinchi argument: ' + arg1)
for i in arg:
print('Boshqa argument: ' + i)
func('@pythonuz', '@js_uz', '@phpuz', '@pyqt5')
Birinchi argument: @pythonuz
Boshqa argument: @js_uz
Boshqa argument: @phpuz
Boshqa argument: @pyqt5
Kwargsga misol:
def func(kwarg):
for i in kwarg:
print('Qiymat: ' + i)
var = {'python': '@pythonuz', 'JavaScript': '@js_uz', 'Php': '@phpuz', 'PyQt5': '@pyqt5'}
func(var)
Qiymat: python
Qiymat: JavaScript
Qiymat: Php
Qiymat: PyQt5
def func(**kwarg):
for x, y in kwarg.items():
print('Kalit: ' + x, ' Qiymat: ' + y)
func(python='django', javascript='react', php='laravel')
Kalit: python Qiymat: django
Kalit: javascript Qiymat: react
Kalit: php Qiymat: laravel
@pythonuz
def func(argument1, argument2, argument3):
print(argument1 * argument2 + argument3)
func(2, 6)
TypeError: func() missing 1 required positional argument: 'argument3'
Funksiyalarda o'zgaruvchan miqdordagi argumentlarni uzatish uchun maxsus belgilardan *, ** foydalaniladi.
*args (kalit-qiymatsiz argumentlar)
**kwargs (kalit-qiymatli argumentlar)
args va kwargs shunchaki argumentlar ro'yxatiga berilgan nom.Bu nomni boshqa istalgan nomga o'zgartirishingiz mumkin.
Masalan: *kalitsiz va **kalitli. Lekin dastur biror jamoa tomonidan yoziladigan bo'lsa yoki dastur kodi sotilishi rejalashtirilgan bo'lsa argumentlar to'plamini args va kwargs kabi nomlash maqsadga muvofiqdir.
Argsga misol:
def func(arg1, *arg):
print('Birinchi argument: ' + arg1)
for i in arg:
print('Boshqa argument: ' + i)
func('@pythonuz', '@js_uz', '@phpuz', '@pyqt5')
Birinchi argument: @pythonuz
Boshqa argument: @js_uz
Boshqa argument: @phpuz
Boshqa argument: @pyqt5
Kwargsga misol:
def func(kwarg):
for i in kwarg:
print('Qiymat: ' + i)
var = {'python': '@pythonuz', 'JavaScript': '@js_uz', 'Php': '@phpuz', 'PyQt5': '@pyqt5'}
func(var)
Qiymat: python
Qiymat: JavaScript
Qiymat: Php
Qiymat: PyQt5
def func(**kwarg):
for x, y in kwarg.items():
print('Kalit: ' + x, ' Qiymat: ' + y)
func(python='django', javascript='react', php='laravel')
Kalit: python Qiymat: django
Kalit: javascript Qiymat: react
Kalit: php Qiymat: laravel
@pythonuz