On 19 February 2014 17:18, Giampaolo Rodola' <g.rodola@gmail.com> wrote:
On Wed, Feb 19, 2014 at 6:04 PM, Oscar Benjamin <oscar.j.benjamin@gmail.com> wrote:
On 19 February 2014 16:52, Giampaolo Rodola' <g.rodola@gmail.com> wrote:
The implementation is pretty straightforward:
def here(concat=None): """Return the absolute path of the parent directory where the script is defined. """ here = os.path.abspath(os.path.dirname(__file__)) if concat is not None: here = os.path.abspath(os.path.join(here, concat)) return here
So if I do from os.path import here and get the above function what happens when I call it in another module?
Ouch! You're right, I naively didn't take that into account. =) I guess there are ways to inspect the caller's module name but I'm not gonna push for that. Sorry for the noise.
There are ways to do it. namedtuple does it here: http://hg.python.org/cpython/file/e6016fffc894/Lib/collections/__init__.py#l... But I think that's considered to be an unfortunate mistake by some. Oscar