我有两个Python脚本
2011/2/dinner/dinner.py
2014/qualification/cookie-clicker-alpha/cookie-clicker-alpha.py
它们都定义了相同的函数binary_search
。为了可维护性,我想将该函数移动到新文件
helpers/binary_search.py
然后从dinner.py
和cookie-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
答案 0 :(得分:0)
最简单的解决方案可能是在helpers/binary_search.py
和2011/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。