Предположим, у вас есть следующее:
$ 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 без необходимости определять другую копию getfile () в классе B.
Я сделал это
import os
import inspect
class A(object):
def getfile(self):
return os.path.abspath(inspect.getfile(self.__class__))
Мне было интересно, есть ли другая стратегия (и в любом случае я хочу написать ее здесь, чтобы она могла быть полезна для других) или потенциальные проблемы с решением, которое я представляю.
CW, поскольку это скорее вопрос для обсуждения, или вопрос типа да / нет