从内置类型派生的Python类不会构造:TypeError:type()最多接受X个参数(给定Y个)

2024-09-30 05:15:43 发布

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

Python 2.7,Windows7x64。你知道吗

密码。请注意,class ImmedVal派生自内置类型long。你知道吗

class Immediate(object):
    def __init__(self, name, value, loc):
        object.__init__(self)
        self.value = value
        self.loc = loc
        self.name = name

class ImmedVal(long, Immediate):
    def __init__(self, name, value, loc):
        long.__init__(self, value)
        Immediate.__init__(self, name, value, loc)

但尝试实例化ImmedVal。。。你知道吗

x = ImmedVal('hello', 33, 7)

。。。不工作:

TypeError: long() takes at most 2 arguments (3 given)

所有不同数量/类型的参数组合都不起作用。你知道吗

注意:我这样做是因为它返回值,所以我可以这样使用它:

eval('x + 1', { 'x' : x })

Tags: nameself密码类型objectinitvaluedef
1条回答
网友
1楼 · 发布于 2024-09-30 05:15:43

这个内置类型是不可变的。这会改变游戏,我需要^{}操作符:

class ImmedVal(long, Immediate):
    def __new__(cls, name, value, loc):
        return long.__new__(cls, value)

    def __init__(self, name, value, loc):
        long.__init__(self, value)
        Immediate.__init__(self, name, value, loc)

(碱基class Immediate__init__从上面看是不变的。)

建设,如上所述,现在工程如期进行。你知道吗

相关问题 更多 >

    热门问题