𧩠ΠΠ°ΠΊ ΡΠ»ΠΎΠΆΠΈΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python: ΠΏΡΠΎΡΡΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ
ΠΠ»Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ '+'. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΠ΄Π½Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ.
def ΡΡΠ½ΠΊΡΠΈΡ1():
# ΠΊΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ 1
def ΡΡΠ½ΠΊΡΠΈΡ2():
# ΠΊΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ 2
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°Ρ_ΡΡΠ½ΠΊΡΠΈΡ = ΡΡΠ½ΠΊΡΠΈΡ1 + ΡΡΠ½ΠΊΡΠΈΡ2
Π’Π΅ΠΏΠ΅ΡΡ, Π²ΡΠ·ΡΠ²Π°Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ 1, ΠΈ ΡΡΠ½ΠΊΡΠΈΡ 2 ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ»ΠΎΠΆΠΈΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python
Π ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΠ΄Π½Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π²ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΊ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python.
1. ΠΡΠ·ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ - Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±Π΅ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
def ΡΡΠ½ΠΊΡΠΈΡ_1():
print("Π― ΡΡΠ½ΠΊΡΠΈΡ 1")
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π²ΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
def ΡΡΠ½ΠΊΡΠΈΡ_2():
print("Π― ΡΡΠ½ΠΊΡΠΈΡ 2")
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄Π²Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
def ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°Ρ_ΡΡΠ½ΠΊΡΠΈΡ():
ΡΡΠ½ΠΊΡΠΈΡ_1()
ΡΡΠ½ΠΊΡΠΈΡ_2()
# ΠΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°Ρ_ΡΡΠ½ΠΊΡΠΈΡ()
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ:
Π― ΡΡΠ½ΠΊΡΠΈΡ 1
Π― ΡΡΠ½ΠΊΡΠΈΡ 2
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ_1, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ_2.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ lambda-ΡΡΠ½ΠΊΡΠΈΠΉ
Π Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ lambda-ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Lambda-ΡΡΠ½ΠΊΡΠΈΠΈ - ΡΡΠΎ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
def ΡΡΠ½ΠΊΡΠΈΡ_1():
return 10
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π²ΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
def ΡΡΠ½ΠΊΡΠΈΡ_2():
return 20
# ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ lambda-ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ
Π΄Π²ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°Ρ_ΡΡΠ½ΠΊΡΠΈΡ = lambda: ΡΡΠ½ΠΊΡΠΈΡ_1() + ΡΡΠ½ΠΊΡΠΈΡ_2()
# ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
print(ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°Ρ_ΡΡΠ½ΠΊΡΠΈΡ())
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ:
30
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ lambda-ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ_1 ΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ_2.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ²
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ. ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΠΊ Π½Π΅ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
def ΡΡΠ½ΠΊΡΠΈΡ_1():
return 10
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π²ΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
def ΡΡΠ½ΠΊΡΠΈΡ_2():
return 20
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»ΠΎΠΆΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ
Π΄Π²ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ
def ΡΠ»ΠΎΠΆΠΈΡΡ_ΡΡΠ½ΠΊΡΠΈΠΈ(decorated_function):
def wrapper():
return ΡΡΠ½ΠΊΡΠΈΡ_1() + ΡΡΠ½ΠΊΡΠΈΡ_2() + decorated_function()
return wrapper
# ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊ Π½Π΅ΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ
@ΡΠ»ΠΎΠΆΠΈΡΡ_ΡΡΠ½ΠΊΡΠΈΠΈ
def ΡΡΠ½ΠΊΡΠΈΡ_3():
return 30
# ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
print(ΡΡΠ½ΠΊΡΠΈΡ_3())
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ:
60
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΡ_3 ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ_1, ΡΡΠ½ΠΊΡΠΈΠΈ_2 ΠΈ ΡΠ°ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ_3 Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° ΡΠ»ΠΎΠΆΠΈΡΡ_ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΡΠ·ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ, lambda-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π²ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ.