Python'da Parametrelerin Birleştirilmesi
Aynı fonksiyona aynı anda hem isimlendirilmiş
hem de konumsal parametreler iletilmesi
mümkündür.
Bu, * sembolü kullanılarak yapılır,
bu sembol, sağında belirtilen parametrelerin
varsayılan değerlerinin kullanılması
gerekmiyorsa, bu parametrelerin isimlendirilmiş
olarak kabul edilmesi gerektiğini belirtir.
Tüm parametreleri konsola yazdıracak bir
fonksiyon oluşturalım.
data değişkeni, normal bir konumsal
parametreyi temsil edecek.
Sonrasında, * sembolünden sonra
varsayılan değerlere sahip iki değişken
start ve end tanımlanır.
Ancak, fonksiyonu çağırırken bu değişkenleri
isimlendirilmiş yapalım:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Kodun çalıştırılmasının sonucu:
1 2 3
start değişkeninin varsayılan değeri
kaldırılır ve aynı zamanda isimlendirilmiş
parametre olarak belirtilmezse, bir hata
oluşur.
Bunun nedeni, * sembolünün
start değişkenini zaten isimlendirilmiş
bir değişken olarak tanımlamış olmasıdır:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # hata verecek
Aşağıdaki kodun çalıştırılmasının sonucu ne olacak:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Aşağıdaki kodun çalıştırılmasının sonucu ne olacak:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Aşağıdaki kodun çalıştırılmasının sonucu ne olacak:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))