作者yungyuc (酷狗喵千代)
看板Python
标题Re: [问题] import 上层资料夹的module?
时间Mon Feb 4 06:07:21 2008
※ 引述《StubbornLin (Victor)》之铭言:
: 我想请问一下import上层资料夹除了使用
: sys.path.append('xxxx')
: 这种方法,没有其它比较....正式的写法吗= =?
: 因为append的路径又得是绝对路径
: 这变成程式码带到别的地方跑又得重设
: 我是有在某些地方去parse目前这个档案的路径
: 然後找到上一层接着append到path的方法
: 可是我还是很困扰,明明它就在楼上,我却非得绕一大圈才能爬到楼上
: 难道就没有楼梯可以走吗 囧?
: 以上 不是什麽大问题的问题= ="
一般我是用 insert(0,'blah'),才不会被 $PYTHONPATH 挡住 :-)
不须要是绝对路径:
>>> import sys
>>> sys.path.insert(0,'..')
>>> import testmod
>>> print testmod
<module 'testmod' from '..\testmod.py'>
你想要的 relative import 去年 (还是前年?) 在 python-dev 结束讨论,
结论是 PEP328,Python 2.5 有实作。
不过经过我长时间的测试 ... 最近又改回用 absolute import。
这个功能确实有它的用处,解决了一些问题,但不能说是很有用。
你会想用 relative import,看起来是因为程式码组织得不好,
用了 relative import 可能反而容易出问题,程式也容易乱。
relative import 大概只适合用来避开 recursive import 死结的发生,
而且在 refactor 程式结构的时候还很容易出包。
我建议善用 package。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 164.107.249.126
※ 编辑: yungyuc 来自: 164.107.249.126 (02/04 06:08)
※ 编辑: yungyuc 来自: 164.107.249.126 (02/04 06:14)
※ 编辑: yungyuc 来自: 164.107.249.126 (02/04 06:16)