2015-01-30 28 views
11

help(foo) ile etkileşimli olarak döndürülen imzasında, /'un anlamı nedir? Yardım (foo) tarafından gösterildiği gibi bir Python yöntemi imzasında eğik çizgi "/" nin anlamı nedir?

In [37]: help(object.__eq__) 

Help on wrapper_descriptor: 

__eq__(self, value, /) 
    Return self==value. 

In [55]: help(object.__init__) 

Help on wrapper_descriptor: 

__init__(self, /, *args, **kwargs) 
    Initialize self. See help(type(self)) for accurate signature. 

Ben argümanları salt anahtar kelime ile ilgili olabilecek düşünmüştüm ama öyle değil. Yalnızca kendi anahtar kelimelerle bağımsız değişkenler ile kendi işlevlerimi oluşturduğumda, konumsal ve anahtar kelime bağımsız değişkenleri(beklendiği gibi) tarafından değil, / ile ayrılır. / ne anlama geliyor?

cevap

4

here açıklandığı gibi, '/' parametresi, yalnızca konumsal olan parametrelerin sonunu (bkz. here), yani anahtar kelime parametresi olarak kullanamadığınız parametreleri işaretler. __eq__(self, value, /) söz konusu olduğunda, eğik çizgi sonundadır, yani tüm parametrelerin sadece konumsal olarak işaretlenmiş olduğu anlamına gelir, sadece __init__'unuzda sadece kendiniz konumsaldır.