Python 如何在运行时使用类型定义具有内部类的类?
假设我想在运行时使用Python 如何在运行时使用类型定义具有内部类的类?,python,python-3.x,Python,Python 3.x,假设我想在运行时使用type方法定义以下类: class Outer(object): one = 'one' two = 'two' class Inner: three = 'three' four = 'four' 到目前为止,我有以下几点: Outer = type('Outer', (object,), {'one': 'one', 'two': 'two', ...}) Outer = type( 'Outer',
type
方法定义以下类:
class Outer(object):
one = 'one'
two = 'two'
class Inner:
three = 'three'
four = 'four'
到目前为止,我有以下几点:
Outer = type('Outer', (object,), {'one': 'one', 'two': 'two', ...})
Outer = type(
'Outer',
(object,),
{
'one': 'one',
'two': 'two',
'Inner': type(
'Inner',
(),
{
'three': 'three',
'four': 'four'
}
)
}
)
不幸的是,我不知道如何定义内部类。我该怎么做 答案如下:
Outer = type('Outer', (object,), {'one': 'one', 'two': 'two', ...})
Outer = type(
'Outer',
(object,),
{
'one': 'one',
'two': 'two',
'Inner': type(
'Inner',
(),
{
'three': 'three',
'four': 'four'
}
)
}
)
答案如下:
Outer = type('Outer', (object,), {'one': 'one', 'two': 'two', ...})
Outer = type(
'Outer',
(object,),
{
'one': 'one',
'two': 'two',
'Inner': type(
'Inner',
(),
{
'three': 'three',
'four': 'four'
}
)
}
)
{…,'Inner':type('Inner',{'something'other':'something'other',…})
@PeterWood在'Inner'和字典之间不应该有一个空元组吗?@darkhorse问题是,您只需将它附加到传递给type
构造函数的名称空间。应该有一个从中继承的类的元组,是的。@darkhorse是的,我错了,应该有一个元组。我无法编辑评论。如果你想用它来创建一个正确的答案,那就去吧。{…,'Inner':type('Inner',{'somethine':'somethine',…})}
@PeterWood在'Inner'和字典之间不应该有一个空元组吗?@darkhorse问题是你只需要将它附加到你正在传递给type
构造函数的名称空间。应该有一个从中继承的类的元组,是的。@darkhorse是的,我错了,应该有一个元组。我无法编辑评论。如果你想从中找到一个正确的答案,那就继续吧。