在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个参数,那是怎么回事?