4
获得派生类的模块文件路径
假设你有以下几点:通过继承
$ more a.py
import os
class A(object):
def getfile(self):
return os.path.abspath(__file__)
-
$ more b.py
import a
class B(a.A):
pass
-
>>> import b
>>> x=b.B()
>>> x.getfile()
'/Users/sbo/tmp/file/a.py'
这是显而易见的。这段代码没有意外。但是假设我想x.getfile()返回b.py的路径,而不必B类下定义GETFILE()的另一个副本
我没有这个
import os
import inspect
class A(object):
def getfile(self):
return os.path.abspath(inspect.getfile(self.__class__))
我在想,如果还有另外一种策略(无论如何,我想写在这里,以便对其他人有用)或者我提出的解决方案的潜在问题。
CW,因为它更是一个讨论的问题,或者是/否样的问题
我喜欢这一点,但有一点要注意的是,你会得到字节编译模块。 – snarkyname77 2010-01-19 12:57:03
我不知道。我认为这很糟糕。这是一个糟糕的方法,任何使用它的人都是坏人。 – 2010-01-19 12:58:38
和头kit小猫? :d – 2010-01-20 02:17:56