/ ΠΈ * Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠΈΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ?
def foo(first, /, second, *, third):
print(first, second, third)
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΡΠ°Π½Π½ΠΎ?
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ / ΠΈ * Π½Π°Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ·Π²Π°ΡΡ foo() Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
>>> foo("bar", "qux")
...
TypeError: foo() missing 1 required keyword-only argument: 'third'
ΠΡΠΆΠ΅Π½ keyword Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΎΠΊΠ΅ΠΉ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΅ΡΠ΅ ΡΠ°Π·:
>>> foo("bar", third="qux")
...
TypeError: foo() missing 1 required positional argument: 'second'
Π‘Π½ΠΎΠ²Π° Π½Π΅Ρ. Π£ΠΊΠ°ΠΆΠ΅ΠΌ Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
>>> foo("bar", "baz", third="qux")
bar baz qux
ΠΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ!
ΠΠ±Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½Ρ. Π, Π² ΠΌΠΎΠ΅ΠΌ ΠΎΠΏΡΡΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠ°Π²ΡΡ, ΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://docs.python.org/3/tutorial/controlflow.html#special-parameters
Post #14
181