Python中惰性数据流系统的元类

2024-04-24 06:24:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于延迟执行的数据流评估框架的想法。我想我需要元类,但我还不太了解它们。也许你已经有了一个想法,如果下面的工作。在

我想编写普通的程序,仅仅通过从某个元类派生对象,我想引入惰性求值。因此

a=A()
b=B()
c=C(a,b)
d=D(a)
if input()=="c":
    print(c.result)
else:
    print(d.result)

为了使这个延迟求值(即对于input=“c”只执行A,B,c,而对于input=“d”则只执行A,d),我只想从元类中派生出A,B,c,d。在

我正在考虑更改__new__,以便它返回一个实际上不执行__init__的代理对象。只有在属性访问时,它才会执行__init__并转发所有属性访问。在

此外,这个代理对象应该有一些类方法,可以在实际__init__-操作实际对象之前预先检查初始化参数是否有效(数据源)。事实上,我希望在不加载对象的情况下打印数据流依赖关系图。在

最后,作为最后一个小补充,我想在我的数据中引入依赖性跟踪。所有对象方法都应该神奇地检查它们的参数,并通过引用所有输入参数来丰富方法的返回结果(如果它是一个“普通类”,我可以在其中设置属性)。通过这种方式,我可以随时跟踪在某些最终数据中起作用的因素。在

你认为这是可能的还是你已经有了一个可能的暗示?尤其是最后一个我不确定的部分。在


Tags: 数据对象方法程序框架代理input参数
1条回答
网友
1楼 · 发布于 2024-04-24 06:24:33

您的系统可能基于__call__属性。那么你的例子将相当于:

a=A()
b=B()
c=C(a,b)
d=D(a)
if input()=="c":
    print(c())
else:
    print(d())

通过调用意义评估的行为。但也可以只使用一个方法*lazy_evaluate()*。在

你会发现更具体地说明你的系统会对你有所帮助。写一个功能规范。你的问题不是功能规范。你还没有充分考虑这个问题。在

相关问题 更多 >