Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在运行时使用类型定义具有内部类的类?_Python_Python 3.x - Fatal编程技术网

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是的,我错了,应该有一个元组。我无法编辑评论。如果你想从中找到一个正确的答案,那就继续吧。