【发布时间】:2019-07-24 20:19:02
【问题描述】:
我有一段这样的代码,但它不起作用
我正在尝试在这里为某个类的实例提供一个唯一的 id。
def countit(Cls):
class CC(Cls):
count = 0
def __init__(self,*args):
super(CC, self).__init__(*args)
self.id = CC.count
CC.count += 1
return CC
class BaseCls(object):
def __init__(self,x,y):
self.x=x
self.y=y
@countit
class Cls(BaseCls):
def __init__(self,x,y,z):
super(Cls, self).__init__(x,y)
self.z=z
c = Cls(1,2,3)
我遇到了这样的错误
Traceback (most recent call last):
File "test.py", line 55, in <module>
c = Cls(1,2,3)
File "test.py", line 35, in __init__
super(CC, self).__init__(*args)
File "test.py", line 48, in __init__
super(Cls, self).__init__(x,y)
TypeError: __init__() missing 1 required positional argument: 'z'
【问题讨论】:
-
这对于装饰器来说根本不是一个好的用例。
标签: python python-3.x decorator python-decorators