如何将重复的代码移动到帮助文件中?

时间:2014-04-14 18:56:15

标签: python python-3.x

我有两个Python脚本

  • 2011/2/dinner/dinner.py
  • 2014/qualification/cookie-clicker-alpha/cookie-clicker-alpha.py

它们都定义了相同的函数binary_search。为了可维护性,我想将该函数移动到新文件

  • helpers/binary_search.py

然后从dinner.pycookie-clicker-alpha.py导入。我怎样才能做到这一点?我使用的是Python 3.x。

最后,对于我来说,python dinner.py对于克隆我代码的任何人来说仍然可以解决问题非常重要:

git clone https://github.com/hickford/codejam.git
cd codejam
cd 2011/2/dinner
python dinner.py sample.in

1 个答案:

答案 0 :(得分:0)

最简单的解决方案可能是在helpers/binary_search.py2011/2/dinner/中制作符号链接2014/qualification/cookie-clicker-alpha/。然后,两个目录中的脚本只能import binary_search

将一些模块组合成一个“脚本”的另一个技巧是拉链它们;

cd 2011/2/dinner
mkdir tmp
cd tmp
cp ../dinner.py __main__.py
cp ../../../helpers/binary_search.py .
zip ../foo.zip *.py
cd ..
echo '#!/usr/bin/env python' >dinner
cat foo.zip >>dinner
chmod a+x dinner
rm -rf foo.zip tmp/

运行“晚餐”程序时,它将解压缩压缩模块并运行__main__.py。我已经将它用于python2,但不能用于python3。