gpt4 book ai didi

python - 如何获取子类的文件名?

转载 作者:行者123 更新时间:2023-11-28 22:13:12 25 4
gpt4 key购买 nike

如何获取子类的文件名?

例子:

base.py:

class BaseClass:
def __init__(self):
# How to get the path "./main1.py"?

main1.py:

from base import BaseClass

class MainClass1(BaseClass):
pass

最佳答案

请记住 BaseClass.__init__ 中的 self 是正在初始化的实际类的实例。因此,一种解决方案是询问该类它来自哪个模块,然后从该模块的路径:

import importlib

class BaseClass:
def __init__(self):
m = importlib.import_module(self.__module__)
print m.__file__

我认为可能有很多方法可以让您最终得到一个您无法导入的模块;感觉这不是最可靠的解决方案。

如果您要做的只是确定子类的来源,那么组合模块名称和类名称可能就足够了,因为应该唯一地标识它:

class BaseClass:
def __init__(self):
print "{}.{}".format(
self.__module__,
self.__class__.__name__
)

关于python - 如何获取子类的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54133380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com