我創建了一個新類,我試圖動態添加到該類中, 我創建了一個列表,我想要放入多個對象,然後我將遍歷名單在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'])....)'? –