在Python中进行子类化时,init参数的奇怪行为

时间:2019-05-26 14:54:03

标签: python inheritance init

在python中进行子类化时,我刚刚发现了init参数的奇怪行为。 有一个简单的代码:

class my_frset (frozenset):

def __init__(self, st, inst):

    super().__init__(st)
    self.inst = inst

当我尝试初始化一个实例时:

a = my_frset({1,2,3} , 4)

我有一个例外:

    a = my_frset({1,2,3} , 4)
TypeError: my_frset expected at most 1 arguments, got 2

所以my_frset想要有1个参数, 但是,如果我喜欢:

    a = my_frset({1,2,3})
TypeError: __init__() missing 1 required positional argument: 'inst'

所以它不想有1个非2个参数,那是怎么回事?

0 个答案:

没有答案