gpt4 book ai didi

python - 从全局变量导入的类填充属性

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

我有一个要在运行时填充的类属性,但我不想传递该值。我现在正在做的是:

weird_class.py

class WeirdClass:
prop = NotImplementedError

运行时文件.py

from weird_class import WeirdClass
PROP = 'somevalue'

class WeirdClassChild(WeirdClass):
prop = PROP

这可行,但每当我创建一个 WeirdClassChild 时,我都必须设置 prop 值,这很烦人。

我希望 WeirdClassChild 无需我特别指示即可自动获取 PROP 全局变量。

我想做这样的事情:

class WeirdClass:
prop = __global_namespace__.PROP

这在 python 中可能吗?

最佳答案

您可以使用inspection 来确定实例化您的类的上下文:

# class definition
import inspect
class Weird:
def __init__(self):
caller_frame = inspect.stack()[1]
caller_module = caller_frame[0]
self.prop = caller_module.f_globals['PROP']

# instantiation
PROP = 555
x = Weird()
print(x.prop)
=> 555

我不一定会推荐它,但如果你有充分的理由这样做......

关于python - 从全局变量导入的类填充属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854579/

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