我创建了一个新类,我试图动态添加到该类中, 我创建了一个列表,我想要放入多个对象,然后我将遍历名单在Django(这是做事的正确方法是什么?)动态添加到类
,但我发现下面的错误
TypeError: __init__() takes exactly 9 arguments (1 given)
我知道是什么错误意味着,我只是不知道如何去创造我的对象的一个新实例,并轻松地添加到它的飞行?
### create User Object
class User:
def __init__(self, Policy, Level, StartDate, EndDate, StartTime, EndTime, Name, Mobile):
self.Policy = Policy
self.Level = Level
self.StartDate = StartDate
self.EndDate = EndDate
self.StartTime = StartTime
self.EndTime = EndTime
self.Name = Name
self.Mobile = Mobile
def __init__(self):
pass
### Get all the Polices ###
lstOnCall = []
for objPolicy in objPolicyData['escalation_policies']:
strPolicyName = objPolicy['name']
if strPolicyName.lower().find('test') == -1:
for objOnCall in objPolicy['on_call']:
objUser = User()
objUser.Policy = strPolicyName
objUser.Level = objOnCall['level']
objUser.StartDate = getDate(objOnCall['start'])
objUser.EndDate = getDate(objOnCall['end'])
objUser.StartTime = getTime(objOnCall['start'])
objUser.EndTime = getTime(objOnCall['end'])
objUser = objOnCall['user']
objUser.Name = objUser['name']
objUser.Mobile = getUserMobile(objUser['id'])
lstOnCall.append(objUser)
print lstOnCall
UPDATE: 添加下面的作品,我只需要知道如何现在打印的项目?
def __init__(self):
pass
以下
for item in lstOnCall:
print item()
回报
print item()
AttributeError: User instance has no __call__ method
它是Python 2中的“print item”和Python 3中的print(item)。不知道'item'后面括号的含义是什么。 – BallpointBen
我不确定你想要做什么。另外,你不需要两个inits。如果你的班级带参数,你应该按照詹姆斯的建议去做。 –
虽然我不确定你为什么不立即通过它们。你有那里的数据;所以为什么不做'objUser = User(strPolicyName,objOnCall ['level'],getDate(objOnCall ['start'])....)'? –