เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดถเตเดญเดฆเดฟเดจเด!
เดซเตเดฌเตเดฐเตเดตเดฐเดฟ, เดซเตเดฌเตเดฐเตเดตเดฐเดฟ XNUM เดตเตผเดทเด เดฒเตเดฌเตเดฐเดฑเดฟเดเดณเตเดเต เดเดฆเตเดฏเตเดเดฟเด เดฎเตเดเตเดฐเต เดชเตเดฐเดเดพเดถเดจเด เดจเดเดจเตเดจเต เดธเตเดฎเดพเตผเดเตเดเต-เดเตปเดตเดฟ ะธ เดชเตเดคเตเดคเตบ-เดทเตเตฝ. เด
เดฑเดฟเดฏเดพเดคเตเดคเดตเตผเดเตเดเดพเดฏเดฟ, เดเดฆเตเดฏเด เดตเดพเดฏเดฟเดเตเดเดพเตป เดเดพเตป เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเต
เดเตเดฐเตเดเตเดเดคเตเดคเดฟเตฝ, เดฎเดพเดฑเตเดฑเดเตเดเดณเดฟเตฝ เดเดฎเดพเตปเดกเต เดชเตเตผเดคเตเดคเตเดเดฐเดฃเด, เดเดฎเดพเตปเดกเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเดฟเดชเตเดฒเตเดเดฐเดฟเดเตเด เดเดดเดฟเดตเตเดเตพ, เดเดฟเดฒ เดฑเตเดซเดพเดเตเดฑเตเดฑเดฑเดฟเดเดเต, เดฌเดเต เดชเดฐเดฟเดนเดพเดฐเดเตเดเตพ เดเดจเตเดจเดฟเดต เดเตพเดชเตเดชเตเดเตเดจเตเดจเต.
เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพเดเตเดเต เดฆเดฏเดตเดพเดฏเดฟ เดชเตเดเตเด เดเดพเดฃเตเด.
เดชเตเดคเตเดคเตบ เดทเตเดฒเตเดฒเดฟเตฝ เดเดจเตเดคเดพเดฃเต เดชเตเดคเดฟเดฏเดคเต?
เดเดพเตป เดเดเตป เดฎเดงเตเดฐเดชเดฒเดนเดพเดฐเดตเตเดฎเดพเดฏเดฟ เดคเตเดเดเตเดเตเด.
เดเดฎเดพเตปเดกเต เดชเตเตผเดคเตเดคเตเดเดฐเดฃเด
เดธเดฎเตเดฎเดคเดฟเดเตเดเตเดจเตเดจเต - เดเดกเดฟเดฑเตเดฑเตผ/เดเดกเดฟเด/เดเตเตผเดฎเดฟเดจเตฝ เดจเดฟเดเตเดเดณเตเดเต เดเดฎเดพเตปเดกเดฟเดจเตเดฑเต เดชเตเดฐเตเด เดเดฟเดฒเดชเตเดชเตเตพ เดเตเตพ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเด เดเดตเดถเตเดฏเดชเตเดชเตเดเตเดฎเตเดชเตเตพ เดเดคเต เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต? เด เดคเดฟเดจเดพเตฝ เดธเดฎเดพเดจเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดจเตฝเดเตเดจเตเดจเดคเดฟเตฝ เดชเตเดคเตเดคเตบ-เดทเตเตฝ เดเตเดฐเดฎเตเดฃ เดชเตเดฐเตเดเดคเดฟ เดเตเดตเดฐเดฟเดเตเดเตเดจเตเดจเต. เดนเตเดกเดฟเดจเต เดเตเดดเดฟเดฒเตเดณเตเดณ เดทเตเตฝ เดเตเดฒเดพเดธเดฟเดจเตเดฑเต เดซเตเตฝเดกเตเดเตพ เด เดคเดฟเดจเตเดฑเต เดซเตเตฝเดกเตเดเดณเดฒเตเดฒ (เดเดฒเตเดฒเดพเดฏเดฟเดเดคเตเดคเตเด __getattr__), เดฏเดพเดจเตเดคเตเดฐเดฟเด เดชเตเตผเดคเตเดคเตเดเดฐเดฃเดตเตเด เดเดฆเตเดฏเด เดฎเตเดคเตฝ เดธเตเดทเตเดเดฟเดเตเดเต (เดฏเดฅเดพเดเตเดฐเดฎเด __dir__ เดฐเตเดคเดฟ เดเดตเตผเดฒเตเดกเต เดเตเดฏเตเดคเตเดเตเดฃเตเดเต). BPython, IPython เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเดณเดฟเตฝ เดจเดฟเดฒเดตเดฟเตฝ เดธเตเดตเดฏเด เดชเตเตผเดคเตเดคเตเดเดฐเดฃเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, PyCharm เดชเตเดฒเตเดฏเตเดณเตเดณ เดเตเดเตเดคเตฝ เดเดฆเดฐเดฃเตเดฏเดฎเดพเดฏ เดเตฝเดชเตเดชเดจเตเดจเดเตเดเดณเตเดฎเดพเดฏเดฟ เดธเดเดฏเตเดเดจเด เดเดพเดฃเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต, เด เดฆเดฟเดถเดฏเดฟเตฝ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดคเดเตพ เดชเด เดฟเดเตเดเตเดตเดฐเดฟเดเดฏเดพเดฃเต.
เดชเตเดฐเตเดชเตเดชเตผเดเตเดเดฟเดเตพ เดเตเตผเดเตเดเตเดจเตเดจเต
เดฑเดฟเดฒเตเดธเดฟเดจเตเดฑเต เดญเดพเดเดฎเดพเดฏเดฟ, เดทเตเตฝ เดเตเดฒเดพเดธเดฟเดจเต เดเดฐเต เดชเตเดคเดฟเดฏ เดฒเดพเดธเตเดฑเตเดฑเต_เดเดฎเดพเตปเดกเต เดชเตเดฐเตเดชเตเดชเตผเดเตเดเดฟ เดฒเดญเดฟเดเตเดเต. เดชเตเดเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดฑเดฟเดเตเดเตเตบ เดเตเดกเตเดณเตเดณ เดเดฐเต เดเดฎเดพเตปเดกเต เดทเตเตฝ เดเดเตโเดธเตเดชเตเดทเตป เดเดฑเดฟเดฏเตเดฎเตเดชเตเตพ, เดเดฎเดพเตปเดกเต เดเดฌเตโเดเดเตเดฑเตเดฑเต __call__() เดเตเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฎเดพเตปเดกเต เดเดฌเตโเดเดเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดคเดฟเดฐเดฟเดเต เดจเตฝเดเดพเดคเตเดคเดคเดฟเดจเดพเตฝ เด เดคเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดเดค เดเดฏเตผเดจเตเดจเต. เดเดชเตเดชเตเตพ เดเดคเต เดเตเดฏเตเดฏเดพเตป เด เดตเดธเดฐเดฎเตเดฃเตเดเต:
try:
command = Shell.touch('/foo.txt')
except ShellException:
command = Shell.last_command
เดเดฎเดพเตปเดกเต เดเดฌเตโเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดชเตเดฐเตเดชเตเดชเตผเดเตเดเดฟเดเดณเตเดเต เดชเดเตเดเดฟเดเดฏเตเด เดตเดฟเดชเตเดฒเตเดเดฐเดฟเดเตเดเต. เดชเดฟเดถเดเต เดธเตเดเตเดฐเตเดฎเดฟเดฒเตเดเตเดเต เดเดฎเดพเตปเดกเต เดเดเตเดเตเดชเตเดเตเดเต เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดจเตเดจ เดเดฐเต เดชเดฟเดถเดเต เดซเตเตฝเดกเต เดเตเตผเดคเตเดคเต.
เด เดธเดพเดงเตเดตเดพเดฏ เดชเตเดคเตเดคเตบ เดชเตเดฐเตเดเดณเตเดณเตเดณ เดเดฎเดพเตปเดกเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต
เดชเตเดคเตเดคเดฃเดฟเดฒเต เดเดฐเต เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเดพเดฏเดฟ เด เดจเตเดฏเตเดเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดเดฐเต เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเตเดเดฟเดฒเตเด เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดเดฒเตเดฒเดพ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเด เดเดฃเตเดเต (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจ 2to3 เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ). เด เดตเดณเต เดเตเดเต เดตเดฟเดณเดฟเดเตเดเต
Shell.2to3()
เดเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดตเตเดฏเดพเดเตเดฏเดพเดคเดพเดตเต เด
เดคเต เด
เดจเตเดตเดฆเดฟเดเตเดเดฟเดฒเตเดฒ.
เดเดฎเดพเตปเดกเดฟเดจเต เดเดฐเต เดฑเตเดฃเตเดเต เดเดฌเตเดเตเดเต เดฐเตเดคเดฟเดฏเดฟเตฝ เดตเดฟเดณเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดชเดฐเดฟเดนเดพเดฐเด:
Shell("2to3") # ะฒะพะทะฒัะฐัะฐะตั ะพะฑัะตะบั ะบะพะผะฐะฝะดั
เดตเตเดฏเดพเดเตเดฏเดพเดคเดพเดตเดฟเดจเตเดฑเต เดตเตเดเตเดทเดฃเดเตเดฃเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเดพเดงเตเดคเดฏเตเดณเตเดณ เดเดฎเดพเตปเดกเตเดเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเตเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต, เดเดคเต เดชเตเดฒเตเดณเตเดณ เดซเตเดฒเตเดเตเดธเดฟเดฌเดฟเตพ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเดจเตเดณเตเดณ เด เดตเดธเดฐเด เดจเตฝเดเตเดจเตเดจเต.
cmd = "python{}".format(sys.version_info[0])
Shell(cmd)(*args, **kwargs)
เดเตเดฑเดฟเดฏ เดฎเดพเดฑเตเดฑเดเตเดเตพ
- เดเดฎเดพเตปเดกเต เดเตเดฒเดพเดธเต เดเดฌเตโเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต __repr__(), __str__() เดฐเตเดคเดฟเดเตพ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดฟ, เด เดคเต เดเดชเตเดชเตเตพ เด เดตเดฌเตเดงเดเดจเตเดฏเดฎเดพเดฏ เดฎเตเดฒเตเดฏเดเตเดเตพ (เดฏเดฅเดพเดเตเดฐเดฎเด เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเดณเตเดณ เดเดฐเต เดเดฎเดพเตปเดกเตเด เด เดคเดฟเดจเตเดฑเต stdout เดเดเตเดเตโเดชเตเดเตเดเตเด) เดจเตฝเดเตเดจเตเดจเต.
- เดเตเดฑเดฟเดฏ เดเตเดกเต เดคเดฟเดฐเตเดคเตเดคเดฒเตเดเตพ.
- เดเตเดธเตเดฑเตเดฑเต เดเดตเดฑเตเดเต เดเตเตผเดเตเดเตเดเดฏเตเด เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณเดต เดชเตเดจเดเดธเดเดเดเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
- เดธเดฌเตเดชเตเดฐเตเดธเดธเต, เดชเตเดฐเตเดธเดธเต เดเตเดฒเดพเดธเตเดเตพ เดเตเตผเดเตเดเตเดจเตเดจเดคเต, เดธเดฌเตเดชเตเดฐเตเดธเดธเต เดฎเตเดกเตเดฏเตเดณเดฟเดจเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดฐเต เด เดงเดฟเด เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เด เดฎเตเตผเดคเตเดคเตเดเดฐเดฃเด เดธเตเดทเตเดเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดเดคเดฟเดจเตเดฑเต เดเดฆเตเดฆเตเดถเตเดฏเด. เดชเตเดคเตเดคเตบ 2/3-เดจเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเตเดกเต เดกเตเดฏเตเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดฒเตเดฒเดพเดคเดพเดเตเดเดพเตป เดเตเดเตเดคเดฒเตเด เดเดตเดถเตเดฏเดฎเดพเดฃเต, เดเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เดฌเตเดฃเดธเตเดเดณเตเด เดจเตฝเดเดพเตป เดเดดเดฟเดฏเตเด.
Smart-env-เตฝ เดชเตเดคเดฟเดฏเดคเตเดจเตเดคเดพเดฃเต?
เดชเตเดคเตเดคเตบ-เดทเตเดฒเตเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เดธเตเดฎเดพเตผเดเตเดเต-เดเตปเดตเดฟ เดฒเตเดฌเตเดฐเดฑเดฟเดฏเดฟเตฝ เดเตเดฑเดเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดเดฃเตเดเดพเดฏเดฟเดเตเดเตเดณเตเดณเต. เดเดคเดฟเดจเตเดณเตเดณ เดเดพเดฐเดฃเด เดฒเดณเดฟเดคเดฎเดพเดฃเต - เดเดดเดฟเดตเตเดธเดฎเดฏเดคเตเดคเดฟเดจเตเดฑเต เด เดญเดพเดตเด, เด เดธเดฎเดฏเดคเตเดคเต เดเดฟเดฒ เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเดฒเตเดเตพ (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดเต เดธเตเดตเดฏเด เดชเตเตผเดคเตเดคเตเดเดฐเดฃเด) เด เดเตเดคเตเดค เดฑเดฟเดฒเตเดธเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเดฟ.
เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดฒเตเดฌเตเดฐเดฑเดฟเดฏเดฟเตฝ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต:
- เดเตเดฑเดฟเดฏ เดเตเดกเต เดคเดฟเดฐเตเดคเตเดคเดฒเตเดเตพ.
- เดฑเตเดซเดพเดเตเดเดฑเดฟเดเดเต.
- เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดเตเดธเตเดฑเตเดฑเตเดเดณเตเดเต เดชเตเดจเดเดธเดเดเดเดจเดฏเตเด เดชเดฐเดฟเดทเตเดเดฐเดฃเดตเตเด.
เด เดเตเดคเตเดค เดฑเดฟเดฒเตเดธเตเดเตพเดเตเดเตเดณเตเดณ เดชเดฆเตเดงเดคเดฟเดเตพ
เดชเตเดคเตเดคเตบ-เดทเตเตฝ เดฒเตเดฌเตเดฐเดฑเดฟ
- เดจเตเตบ-เดฌเตเดฒเตเดเตเดเดฟเดเดเต เดเดฎเดพเตปเดกเต เดเตเดณเตเดเตพเดเตเดเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดเตเตผเดเตเดเตเดจเตเดจเต (เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเตเดฑเต เดธเดฎเดพเดจเตเดคเดฐเดตเตฝเดเตเดเดฐเดฃเด).
smart-env เดฒเตเดฌเตเดฐเดฑเดฟ
- ENV เดเตเดฒเดพเดธเดฟเตฝ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดเต เดธเตเดตเดฏเด เดชเตเตผเดคเตเดคเตเดเดฐเดฃเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ.
- เดเดฐเต env เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต เด เดธเตเดคเดฟเดคเตเดตเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดเตป เดเดชเตเดชเดฑเตเดฑเตเดฑเตผเดเตเดเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ.
- ENV เดเตเดฒเดพเดธเดฟเดจเตเดณเตเดณ str(), repr() เดซเดเดเตเดทเดจเตเดเตพเดเตเดเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ.
เด เดเตเดคเตเดค เดฑเดฟเดฒเตเดธเตเดเดณเตเดเต เดคเตเดฏเดคเดฟเดเตพ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดถเดฏเดตเดฟเดจเดฟเดฎเดฏ เดเดพเดจเดฒเตเดเดณเดฟเตฝ เดเตเดเตเดคเตฝ เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเตเด:
เดเตเดฒเดฟเดเตเดฐเดพเด เดเดพเดจเตฝ (เดชเดฌเตเดฒเดฟเดเต) เดเตเดตเดฟเดฑเตเดฑเตผ - เด เดฒเตเดเดจเดคเตเดคเดฟเตฝ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด.
เด เดตเดฒเดเดฌเด: www.habr.com