Nasıl düzeltilir: syntaxerror: konumsal argüman, anahtar kelime argümanını takip eder
Python’da karşılaşabileceğiniz bir hata:
SyntaxError : positional argument follows keyword argument
Bu hata, bir işlevde anahtar kelime bağımsız değişkenini kullandıktan sonra konumsal bağımsız değişken kullandığınızda ortaya çıkar.
İşte ikisi arasındaki fark:
Konumsal argümanlar , önünde “anahtar kelime” bulunmayan argümanlardır.
- Örnek: işlevim(2, 2)
Anahtar kelime argümanları, önünde bir “anahtar kelime” bulunan argümanlardır.
- Örnek: işlevim(a=2, b=2)
Bir anahtar kelime argümanından sonra konumsal bir argüman kullanırsanız Python bir hata verecektir.
- Örnek: işlevim(a=2, 2)
Aşağıdaki örnek, bu hatanın pratikte nasıl ortaya çıkabileceğini göstermektedir.
Örnek: Konumsal bir argüman, bir anahtar kelime argümanını takip eder
Python’da iki değeri çarpıp ardından üçte bire bölen aşağıdaki fonksiyona sahip olduğumuzu varsayalım:
def do_stuff (a,b):
return a*b/c
Aşağıdaki örnekler bu işlevi kullanmanın geçerli ve geçersiz yollarını göstermektedir:
Geçerli yol #1: tüm konumsal argümanlar
Aşağıdaki kod, fonksiyonumuzun tüm konumsal argümanlarla nasıl kullanılacağını gösterir:
do_stuff ( 4,10,5 )
8.0
Python her fonksiyon argümanı için tam olarak hangi değerlerin kullanılacağını bildiğinden hiçbir hata oluşmaz.
Geçerli Yöntem #2: Tüm Anahtar Kelime Bağımsız Değişkenleri
Aşağıdaki kod, işlevimizin tüm anahtar kelime bağımsız değişkenleriyle nasıl kullanılacağını gösterir:
do_stuff(a= 4 , b= 10 , c= 5 )
8.0
Yine hiçbir hata atılmıyor çünkü Python her fonksiyon argümanı için tam olarak hangi değerlerin kullanılacağını biliyor.
Geçerli Yöntem #3: Anahtar Kelime Bağımsız Değişkenlerinden Önce Konumsal Bağımsız Değişkenler
Aşağıdaki kod, anahtar kelime bağımsız değişkenlerinden önce kullanılan konumsal bağımsız değişkenlerle işlevimizi nasıl kullanacağımızı gösterir:
do_stuff( 4 ,b= 10 ,c= 5 )
8.0
Python an argümanına 4 değerinin atanması gerektiğini bildiğinden hata oluşmaz.
Geçersiz yol: anahtar kelime bağımsız değişkenlerinden sonra konumsal bağımsız değişkenler
Aşağıdaki kod, anahtar kelime bağımsız değişkenlerinden sonra kullanılan konumsal bağımsız değişkenlerle işlevi nasıl kullanmayı deneyebileceğimizi gösterir:
do_stuff(a= 4 , 10 , 5 )
SyntaxError : positional argument follows keyword argument
Anahtar kelime bağımsız değişkenlerinden sonra konumsal bağımsız değişkenler kullandığımız için bir hata atılıyor.
Özellikle Python, 10 ve 5 değerlerinin b veya c argümanlarına atanması gerekip gerekmediğini bilmediğinden işlevi yürütemez.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Pandas’ta KeyError Nasıl Düzeltilir
Nasıl düzeltilir? ValueError: float NaN int’ye dönüştürülemiyor
Nasıl düzeltilir? ValueError: İşlenenler şekillerle yayınlanamadı