π ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ python
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ `__doc__` ΡΡΠ½ΠΊΡΠΈΠΈ.
def my_function():
"""ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ"""
# ΠΊΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ
pass
print(my_function.__doc__)
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ `my_function()`.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ. Π Python ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ².
Π¨Π°Π³ 1: ΠΠΌΠΏΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ "inspect"
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ inspect
. ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
import inspect
Π¨Π°Π³ 2: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ calculate_square
, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°:
def calculate_square(number):
"""
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°.
"""
return number ** 2
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ inspect.getdoc
. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ (docstring) ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
help_text = inspect.getdoc(calculate_square)
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ calculate_square
Π±ΡΠ΄Π΅Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π° Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ help_text
. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ.
Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HTML-ΡΠ΅Π³ <abbr>
. ΠΡΠΎΡ ΡΠ΅Π³ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΊ ΡΠ΅ΠΊΡΡΡ.
popup_help = f"<abbr title='{help_text}'>calculate_square()</abbr>"
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΡΡΠΎΠΊΡ popup_help
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ calculate_square
. ΠΡΠΏΠ»ΡΠ²Π°ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°Π²Π΅Π΄Π΅Ρ ΠΊΡΡΡΠΎΡ ΠΌΡΡΠΈ Π½Π° ΡΠ΅ΠΊΡΡ calculate_square()
.
Π¨Π°Π³ 4: ΠΡΠ²ΠΎΠ΄ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ²Π΅ΡΡΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Π½Π° ΡΠΊΡΠ°Π½. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ HTML-ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ <div id="help-container"></div>
.
help_container = "<div id='help-container'>" + popup_help + "</div>"
print(help_container)
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ²Π΅Π»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ help_container
, Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π²Π½ΡΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° <div>
.
ΠΡΠΎΠ³
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ inspect
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ HTML-ΡΠ΅Π³ <abbr>
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ Π·Π½Π°Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅.