Eğik Çizgi (/), önceki bağımsız değişkenlerin yalnızca konumsal bağımsız değişken olduğunu belirtir. PEP 570 kabul edildikten sonra sadece konumsal argümanlar özelliği python 3.8'e eklendi . Başlangıçta bu gösterim PEP 457 - Yalnızca Konumsal Parametreler İçin Gösterim İşaretinde tanımlanmıştır
Önceden eğik çizgi (/) işlev tanımındaki parametreler yalnızca konumsaldır ve eğik çizgi (/) izleyen parametreler sözdizimine göre her türlü olabilir. Bağımsız değişkenlerin yalnızca konumsal parametrelerle eşleştirildiği durumlarda, yalnızca bir işlev çağrıldığında konumlarına göre parametreler. Yalnızca konumsal parametrelerin anahtar kelimelerle (ad) geçirilmesi geçersizdir.
Aşağıdaki örneği ele alalım
def foo(a, b, / , x, y):
print("positional ", a, b)
print("positional or keyword", x, y)
Yukarıdaki fonksiyon tanımında a ve b parametreleri sadece konumsaldır, x veya y ise konumsal veya anahtar kelime olabilir.
Aşağıdaki işlev çağrıları geçerlidir
foo(40, 20, 99, 39)
foo(40, 3.14, "hello", y="world")
foo(1.45, 3.14, x="hello", y="world")
Ancak, aşağıdaki işlev çağrısı geçerli değildir, bu da a, b anahtar kelimesi olarak değil, konum bağımsız değişkenleri olarak iletildiğinden, TypeError istisnasını yükseltir
foo(a=1.45, b=3.14, x=1, y=4)
TypeError: foo (), anahtar kelime bağımsız değişkenleri olarak iletilen yalnızca konumla ilgili bağımsız değişkenler aldı: 'a, b'
Python'da yerleşik birçok işlev, yalnızca anahtar sözcükle argüman aktarmanın mantıklı olmadığı konumsal argümanları kabul eder. Örneğin, yerleşik işlev len yalnızca bir konum (yalnızca) bağımsız değişkenini kabul eder, len olarak len (obj = "merhaba dünya") çağrıldığında okunabilirliği bozarsa, yardımı (len) kontrol edin.
>>> help(len)
Help on built-in function len in module builtins:
len(obj, /)
Return the number of items in a container.
Yalnızca konumsal parametreler altta yatan c / kütüphane işlevlerinin bakımını kolaylaştırır. API kullanan istemci kodunu kırma riski olmadan yalnızca konumsal parametrelerin parametre adlarının gelecekte değişmesine izin verir
Son fakat en önemlisi, yalnızca konumsal parametreler, adlarını değişken uzunluklu anahtar kelime bağımsız değişkenlerinde kullanılacak şekilde kullanmamıza izin verir. Aşağıdaki örneği kontrol edin
>>> def f(a, b, /, **kwargs):
... print(a, b, kwargs)
...
>>> f(10, 20, a=1, b=2, c=3) # a and b are used in two ways
10 20 {'a': 1, 'b': 2, 'c': 3}
Yalnızca konumsal parametreler daha iyidir Burada python'daki fonksiyon bağımsız değişkenleri türleri: Yalnızca Konumsal Parametreler
Sadece konumsal parametrelerin sözdizimi python3.8'e resmi olarak eklendi. Ödeme yeni python3.8 ne - pozisyonel sadece argümanlar
PEP İle İlgili: PEP 570 - Python Yalnızca Konumsal Parametreler
/
, çünkü "bu ters işlemi*
", Python'un biraz çılgın olduğunu gösterir. Bu bir tür sinestezidir.