ΠΠΎΠ±Π°Ρ Π΄Π΅Π½ Π½Π° ΡΠΈΡΠ΅!
Π€Π΅Π²ΡΡΠ°ΡΠΈ 29 2020 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΠ΅ ΠΎΠ΄ΡΠΆΠ° ΠΎΡΠΈΡΠΈΡΠ°Π»Π½ΠΎ ΠΌΠΈΠΊΡΠΎ-ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΠΏΠ°ΠΌΠ΅ΡΠ΅Π½-Π·Π°Π²ΠΈΡΠ΅Π½ ΠΈ ΠΏΠΈΡΠΎΠ½-ΡΠΊΠΎΠ»ΠΊΠ°. ΠΠ° ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ Π½Π΅ ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Π½ΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌ ΠΏΡΠ²ΠΎ Π΄Π° Π³ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΠ΅
ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ, ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΡΠ²Π°Π°Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΏΡΠΎΡΠΈΡΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π½Π΅ΠΊΠΎΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ° Π΄Π΅ΡΠ°Π»ΠΈ, Π²ΠΈΠ΄Π΅ΡΠ΅ ΠΌΠ°ΡΠΊΠ°.
Π¨ΡΠΎ ΠΈΠΌΠ° Π½ΠΎΠ²ΠΎ Π²ΠΎ python-shell?
ΠΠ΅Π΄Π½Π°Ρ ΡΠ΅ ΠΏΠΎΡΠ½Π°ΠΌ ΡΠΎ Π΄Π΅ΡΠ΅ΡΡ.
ΠΠ°Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
Π‘Π΅ ΡΠΎΠ³Π»Π°ΡΡΠ²Π°ΠΌ - ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π΅ ΠΊΠΎΠ³Π° ΡΡΠ΅Π΄Π½ΠΈΠΊΠΎΡ/IDE/ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΡ ΡΠ΅ Π²Π΅ ΠΏΠΎΡΡΠΈΠΊΠ½Π΅ Π·Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, Π° ΠΏΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ Π΄ΡΡΠΈ ΠΈ Π·Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π·Π° ΠΏΠΎΠ²ΠΈΠΊΠΎΡ? Π’Π°ΠΊΠ°, python-shell ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ Π½Π°ΠΏΡΠ΅Π΄ΡΠ²Π° Π²ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠ»ΠΈΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. ΠΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠΎΡ ΡΡΠΎ ΠΏΠΎΠ»ΠΈΡΠ°ΡΠ° ΠΎΠ΄ ΠΊΠ»Π°ΡΠ°ΡΠ° Shell ΠΏΠΎΠ΄ Ρ Π°ΡΠ±Π°ΡΠ° ΡΠ΅ Π΄Π΅-ΡΠ°ΠΊΡΠΎ, Π° Π½Π΅ Π½Π΅ΡΠ·ΠΈΠ½ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠ° (ΡΠ΅ΠΏΡΠΈΡΡΡΠ½ΠΎΡΠΎ __getattr__), Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΈΡΠ°ΡΠ΅ Π±Π΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠΎΠ·Π΄Π°Π΄Π΅Π½ΠΎ ΠΎΠ΄ Π½ΡΠ»Π° (ΡΠΎ ΠΏΡΠ΅ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΡ __dir__, ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ). ΠΠ²ΡΠΎΠΌΠ°ΡΡΠΊΠΎΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΈΡΠ°ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ BPython ΠΈ IPython. Π‘Π΅ ΡΠ°Π·Π±ΠΈΡΠ°, Π±ΠΈ ΡΠ°ΠΊΠ°Π» Π΄Π° Π²ΠΈΠ΄Π°ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΠΏΠΎΠΏΠΎΡΠΈΡΡΠ²Π°Π½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΊΠ°ΠΊΠΎ PyCharm, Π° ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° ΡΠ΅ ΠΏΡΠΎΡΡΡΠ²Π°Π°Ρ Π²ΠΎ ΠΎΠ²Π°Π° Π½Π°ΡΠΎΠΊΠ°.
ΠΠΎΠ΄Π°Π²Π°ΡΠ΅ ΡΠ²ΠΎΡΡΡΠ²Π°
ΠΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ, ΠΊΠ»Π°ΡΠ°ΡΠ° Shell Π΄ΠΎΠ±ΠΈ Π½ΠΎΠ²ΠΎ ΡΠ²ΠΎΡΡΡΠ²ΠΎ last_command. ΠΠΎΡΡΠ΅Π±Π°ΡΠ° Π·Π° ΡΠΎΠ° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΊΠΎΠ³Π° ShellException Π±Π΅ΡΠ΅ ΡΡΠ»Π΅Π½ ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎ Π½Π΅Π½ΡΠ»ΡΠ° ΠΏΠΎΠ²ΡΠ°ΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ Command Π½Π΅ Π±Π΅ΡΠ΅ Π²ΡΠ°ΡΠ΅Π½ ΠΎΠ΄ ΠΏΠΎΠ²ΠΈΠΊΠΎΡ __call__() Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ. Π‘Π΅Π³Π° ΠΏΠΎΡΡΠΎΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΎΠ²Π°:
try:
command = Shell.touch('/foo.txt')
except ShellException:
command = Shell.last_command
Π‘ΠΏΠΈΡΠΎΠΊΠΎΡ Π½Π° ΡΠ²ΠΎΡΡΡΠ²Π° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ Command ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΠΏΡΠΎΡΠΈΡΠ΅Π½. ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π΅ ΠΏΠΎΠ»Π΅ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ ΡΡΠΎ Π³ΠΎ Π²ΡΠ°ΡΠ° ΠΈΠ·Π»Π΅Π·ΠΎΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π²ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΡ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π°ΡΠ΅Π΄Π±ΠΈ ΡΠΎ Π½Π΅Π²Π°ΠΆΠ΅ΡΠΊΠΈ ΠΈΠΌΠΈΡΠ° Π½Π° Python
Π Π΅ΡΠΈΡΠΈ ΡΠ΅ΠΊΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈΠΌΠ° Π±Π°ΡΠ΅ΠΌ Π΅Π΄Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΡΠΈΠ΅ ΠΈΠΌΠ΅ Π½Π΅ Π΅ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ ΠΊΠ°ΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π²ΠΎ Python (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠ·Π½Π°ΡΠ°ΡΠ° Π°Π»Π°ΡΠΊΠ° 2to3). ΠΠΎΠ²ΠΈΠΊΠ°ΡΡΠ΅ ΡΠ° ΡΠΎ
Shell.2to3()
ΠΠΊΠΎ Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°, ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π°ΡΠΎΡ Π½Π΅ΠΌΠ° Π΄Π° Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π½Π° ΠΊΡΡΠΆΠ΅Π½ Π½Π°ΡΠΈΠ½:
Shell("2to3") # Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° Π½Π° ΠΈΡΡ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π²Π°Π»ΠΈΠ΄Π½ΠΈ ΠΎΠ΄ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΡΠΎΠ»ΠΊΡΠ²Π°ΡΠΎΡ, ΡΡΠΎ ΠΎΡΡΠ°Π²Π° ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΈ ΠΊΠ°ΠΊΠΎ
cmd = "python{}".format(sys.version_info[0])
Shell(cmd)(*args, **kwargs)
ΠΠ°Π»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ
- ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ __repr__() ΠΈ __str__() Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ ΠΎΠ΄ ΠΊΠ»Π°ΡΠ°ΡΠ° Command, ΠΊΠΎΠΈ ΡΠ΅Π³Π° ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ²Π°Π°Ρ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΠΈΠ·Π»Π΅Π· stdout, ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ).
- ΠΠ°Π»ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΡ.
- ΠΠΎΠ΄Π°Π²Π°ΡΠ΅ ΡΠ΅ΡΡ ΠΏΠΎΠΊΡΠΈΠ΅Π½ΠΎΡΡ, ΠΊΠ°ΠΊΠΎ ΠΈ ΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈΡΠ΅.
- ΠΠΎΠ΄Π°Π²Π°ΡΠ΅ Π½Π° ΠΊΠ»Π°ΡΠΈΡΠ΅ Subprocess ΠΈ Process, ΡΠΈΡΠ° ΡΠ΅Π» Π΅ Π΄Π° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π°ΠΏΡΡΡΠ°ΠΊΡΠΈΡΠ° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΎΡ Π·Π° ΠΏΠΎΡΠΏΡΠΎΡΠ΅Ρ. ΠΠ°ΡΡΠ΅ΡΡΠΎ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π° Π΄Π° ΡΠ΅ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ° Π΄ΡΠΏΠ»ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ Python 2/3, Π½ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ Π±ΠΎΠ½ΡΡΠΈ.
Π¨ΡΠΎ ΠΈΠΌΠ° Π½ΠΎΠ²ΠΎ Π²ΠΎ smart-env?
ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ python-shell, ΠΈΠΌΠ° ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° smart-env. ΠΡΠΈΡΠΈΠ½Π°ΡΠ° Π·Π° ΠΎΠ²Π° Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π° - Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π½Π° ΡΠ»ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΏΡΠΈ ΡΡΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ°Π»Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠ° (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎΡΠ½Π°ΡΠ° ΡΡΠ΅Π΄ΠΈΠ½Π°) Π±Π΅Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ΠΈ Π²ΠΎ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.
ΠΡΡΡΠ½ΠΎΡΡ, ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°:
- ΠΠ°Π»ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΡ.
- Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΡΠ°ΡΠ΅.
- Π Π΅ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ° ΠΈ ΡΡΠΎΠ²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΈ.
ΠΠ»Π°Π½ΠΎΠ²ΠΈ Π·Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎ ΠΏΠΈΡΠΎΠ½-ΡΠΊΠΎΠ»ΠΊΠ°
- ΠΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ (ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ).
smart-env Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
- ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΠΏΠΎΠΏΠΎΠ»Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎΡΠ½Π°ΡΠ° ΡΡΠ΅Π΄ΠΈΠ½Π° Π²ΠΎ ΠΊΠ»Π°ΡΠ°ΡΠ° ENV.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° in ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΡΡΠΎΠ΅ΡΠ΅ΡΠΎ Π½Π° env ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°.
- ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ str() ΠΈ repr() Π·Π° ΠΊΠ»Π°ΡΠ°ΡΠ° ENV.
ΠΠ°ΡΡΠΌΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΈ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠ°Π½Π°Π»ΠΈ Π·Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ°:
Π’Π΅Π»Π΅Π³ΡΠ°ΠΌΡΠΊΠΈ ΠΊΠ°Π½Π°Π» (ΡΠ°Π²Π΅Π½) Twitter - ΠΠΆΡΡΠΈΡΠ°ΡΡΠ΅ Π²ΠΎ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ°.
ΠΠ·Π²ΠΎΡ: www.habr.com