【发布时间】:2010-08-03 16:29:41
【问题描述】:
假设我正在构建一组复合类型:
def subordinate_type(params):
#Dink with stuff
a = type(myname, (), dict_of_fields)
return a()
def toplevel(params)
lots_of_types = dict(keys, values)
myawesomedynamictype = type(toplevelname, (), lots_of_types)
#Now I want to edit some of the values in myawesomedynamictype's
#lots_of_types.
return myawesomedynamictype()
在这种特殊情况下,我希望引用插入到lots_of_types 中的“typeclass”myawesomedynamictype。
我试图遍历lots_of_types 并设置它,假设引用指向同一个东西,但我发现myawesomedynamictype 已损坏并丢失了它的字段。
我要解决的问题是我得到了与subordinate_type 类型相关的值,我需要根据subordinate_type 生成一个toplevel 实例化。
【问题讨论】:
-
你能发布一些演示问题的玩具代码吗?
-
为什么你的基类不是
object? -
@SilentGhost:似乎不需要。
-
但是出于什么特定目的您需要对插入到 lots_of_types 中的“类型类”myawesomedynamictype 的引用吗?这只能是稍后访问构造函数、方法(或成员),或者用于类型检查,或者以某种奇怪的方式实现继承。没有一个听起来像 Pythonic - 你以后用这个参考做什么?
-
@smci:我对问题的具体情况一无所知。这是将近一年前的事了。我正在做一些元编程。
标签: python types metaprogramming