αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž˜αž·αžαŸ’αžαž—αžΆαž– Python αž“αž·αž„ BashαŸ– αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ python-shell αž“αž·αž„ smart-env v αŸ” ៑.០.៑

αžαŸ’αž„αŸƒαž›αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆ!

29 αž€αž»αž˜αŸ’αž—αŸˆ xNUMX αž†αŸ’αž“αžΆαŸ† αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžαŸ’αž“αžΆαžαžαžΌαž…αž‡αžΆαž•αŸ’αž›αžΌαžœαž€αžΆαžšαž“αŸƒαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„ αžœαŸƒαž†αŸ’αž›αžΆαž ΠΈ python-shell. αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž’αŸ’αž“αž€β€‹αžŠαŸ‚αž›β€‹αž˜αž·αž“β€‹αž…αŸαŸ‡β€‹αžŠαžΉαž„ αžαŸ’αž‰αž»αŸ†β€‹αžŸαŸ’αž“αžΎβ€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž“β€‹αžœαžΆβ€‹αž‡αžΆβ€‹αž˜αž»αž“β€‹αžŸαž·αž“ αž”αŸ’αžšαž€αžΆαžŸαžŠαŸ†αž”αžΌαž„.

αžŸαžšαž»αž”αž˜αž€ αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžšαž½αž˜αž˜αžΆαž“αž€αžΆαžšαž”αŸ†αž–αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αžŸαž˜αžαŸ’αžαž—αžΆαž–αž–αž„αŸ’αžšαžΈαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž€αžΆαžšαž‡αž½αžŸαž‡αž»αž›αž‘αžΎαž„αžœαž·αž‰ αž“αž·αž„αž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαžŸαžΌαž˜αž˜αžΎαž›αž†αŸ’αž˜αžΆαŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαžαŸ’αž˜αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ python-shell?

αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž—αŸ’αž›αžΆαž˜αŸ—αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž„αŸ’αž’αŸ‚αž˜αŸ”

αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ

αž™αž›αŸ‹αž–αŸ’αžšαž˜ - αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αž·αž–αž“αŸ’αž’ / IDE / terminal αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αŸ†αž–αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž αžΎαž™αž‡αž½αž“αž€αžΆαž›αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž αŸ…? αžŠαžΌαž…αŸ’αž“αŸαŸ‡ python-shell αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž“αŸ’αžαž·αž…αž˜αŸ’αžαž„ αŸ— αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αž»αžαž„αžΆαžšαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαžœαžΆαž›αž“αŸƒαžαŸ’αž“αžΆαž€αŸ‹ Shell αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αŸ’αžšαžŽαžΆαžαŸ‹αž‚αžΊαž˜αž·αž“αž–αž·αžαž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžœαžΆαž›αžšαž”αžŸαŸ‹αžœαžΆ ( __getattr__ αž‚αŸ’αžšαž”αŸ‹αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„) αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž–αžΈαž‘αž‘αŸ (αžŠαŸ„αž™αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž›αžΎαžŸαž‘αž˜αŸ’αž„αž“αŸ‹αž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš __dir__ αžšαŸ€αž„αž‚αŸ’αž“αžΆ) αŸ” αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αžŸαŸ’αžαžΆαž“ BPython αž“αž·αž„ IPython αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αžƒαžΎαž‰αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™αž•αž›αž·αžαž•αž›αžŠαŸαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžŠαžΌαž…αž‡αžΆ PyCharm αž αžΎαž™αž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž·αž€αŸ’αžŸαžΆαž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ…αž“αŸαŸ‡αŸ”

αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·

αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αžαŸ’αž“αžΆαž€αŸ‹ Shell αž”αžΆαž“αž‘αž‘αž½αž›αž“αžΌαžœαž‘αŸ’αžšαž–αŸ’αž™αžŸαž˜αŸ’αž”αžαŸ’αžαž·αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžšαž”αžŸαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαŸ’αž˜αžΈαŸ” αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› ShellException αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž…αŸ„αž›αžŠαŸ„αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž˜αžΆαž“αž›αŸαžαž€αžΌαžŠαžαŸ’αžšαž‘αž”αŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžŸαžΌαž“αŸ’αž™αž“αŸ„αŸ‡ αžœαžαŸ’αžαž»αž”αž‰αŸ’αž‡αžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž‘αž”αŸ‹αž–αžΈαž€αžΆαžšαž αŸ… __call__() αž‘αŸ…αžœαžαŸ’αžαž»αž”αž‰αŸ’αž‡αžΆαž“αŸ„αŸ‡αž‘αŸαŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αžΆαž“αž±αž€αžΆαžŸαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžšαžΏαž„αž“αŸαŸ‡αŸ–

try:
    command = Shell.touch('/foo.txt')
except ShellException:
    command = Shell.last_command

αž”αž‰αŸ’αž‡αžΈαž“αŸƒαž›αž€αŸ’αžαžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž·αžšαž”αžŸαŸ‹αžœαžαŸ’αžαž»αž”αž‰αŸ’αž‡αžΆαž€αŸαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αž•αž„αžŠαŸ‚αžšαŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžœαžΆαž›αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αžαŸ’αžšαž‘αž”αŸ‹αž›αž‘αŸ’αž’αž•αž›αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αŸ…αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž€αŸ†αž αž»αžŸαŸ”

αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡ Python αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ

αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αžΆαž“αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™αžŠαŸ‚αž›αžˆαŸ’αž˜αŸ„αŸ‡αž˜αž·αž“αžŸαž˜αžšαž˜αŸ’αž™αž‡αžΆαž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž“αŸ…αž€αŸ’αž“αž»αž„ Python (αž§αž‘αžΆαž αžšαžŽαŸ αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ 2to3 αžŠαŸαž›αŸ’αž”αžΈ)αŸ” αž αŸ…αž“αžΆαž„αž‡αžΆαž˜αž½αž™

Shell.2to3()

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚αž“αžΉαž„αž˜αž·αž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžœαžΆαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž‘αŸαŸ”
αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‚αžΊαžαŸ’αžšαžΌαžœαž αŸ…αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž˜αžœαž·αž’αžΈαžšαž„αŸ’αžœαž„αŸ‹αž˜αžΌαž›αŸ–

Shell("2to3")  # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

αžœαžΆαž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαž’αŸ’αž“αž€αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αž–αž›αž—αžΆαž–αž–αžΈαž‘αžŸαŸ’αžŸαž“αŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚αžŠαŸ‚αž›αž‘αž»αž€αž±αž€αžΆαžŸαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“αžŠαžΌαž…αž‡αžΆ

cmd = "python{}".format(sys.version_info[0])
Shell(cmd)(*args, **kwargs)

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαž·αž…αžαž½αž…

  • αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš __repr__() αž“αž·αž„ __str__() αž“αŸƒαžœαžαŸ’αžαž»αžαŸ’αž“αžΆαž€αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž αžŠαŸ‚αž›αž₯αž‘αžΌαžœαž“αŸαŸ‡αž”αž„αŸ’αž€αžΎαžαžαž˜αŸ’αž›αŸƒαžœαž·αž…αžΆαžšαžŽαž‰αžΆαžŽ (αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš αž“αž·αž„αž›αž‘αŸ’αž’αž•αž› stdout αžšαž”αžŸαŸ‹αžœαžΆαžšαŸ€αž„αž‚αŸ’αž“αžΆ)αŸ”
  • αž€αŸ‚αž€αžΌαžŠαžαž·αž…αžαž½αž…αŸ”
  • αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αž›αžΎαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αŸ”
  • αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž“αžΆαž€αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž„ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž‚αŸ„αž›αž”αŸ†αžŽαž„αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αžšαž·αžαž”αž“αŸ’αžαŸ‚αž˜αž“αŸƒ abstraction αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΌαžŒαž»αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž„αŸ” αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž›αž»αž”αž”αŸ†αž”αžΆαžαŸ‹αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž€αžΌαžŠαž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ Python 2/3 αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αžΆαž…αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž”αŸ’αžšαžΆαž€αŸ‹αžšαž„αŸ’αžœαžΆαž“αŸ‹αžŠαŸαž‘αŸƒαž‘αŸ€αžαž•αž„αžŠαŸ‚αžšαŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαžαŸ’αž˜αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ smart-env?

αž˜αž·αž“αžŠαžΌαž… python-shell αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαž·αž…αžαž½αž…αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ smart-env αŸ” αž αŸαžαž»αž•αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž“αŸαŸ‡αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰ - αž€αž„αŸ’αžœαŸ‡αž–αŸαž›αžœαŸαž›αžΆαž‘αŸ†αž“αŸαžš αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αžŸαž€αŸ’αžαžΆαž“αž»αž–αž›αž˜αž½αž™αž…αŸ†αž“αž½αž“ (αž§αž‘αžΆαž αžšαžŽαŸ αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸƒαž’αžαŸαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ”

αžαžΆαž˜αž–αž·αž αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž…αŸ†αž–αŸ„αŸ‡αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αŸ–

  • αž€αŸ‚αž€αžΌαžŠαžαž·αž…αžαž½αž…αŸ”
  • αž€αžΆαžšαž€αŸ‚αž…αŸ’αž“αŸƒαž‘αžΎαž„αžœαž·αž‰αŸ”
  • αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž‘αžΎαž„αžœαž·αž‰ αž“αž·αž„αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αŸ”

αž•αŸ‚αž“αž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹

αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ python-shell

  • αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž αŸ…αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž˜αž·αž“αžšαžΆαžšαžΆαŸ†αž„ (αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ) αŸ”

αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ smart-env

  • αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸƒαž’αžαŸαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αž“αžΆαž€αŸ‹ ENV αŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ in operator αžŠαžΎαž˜αŸ’αž”αžΈαž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž’αžαŸ’αžαž·αž—αžΆαž–αž“αŸƒαž’αžαŸαžš env αŸ”
  • αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž»αžαž„αžΆαžš str() αž“αž·αž„ repr() αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž“αžΆαž€αŸ‹ ENV αŸ”

αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž“αŸƒαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜:

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹