新しいクラスを作成しましたが、そのクラスに動的に追加しようとしています リストを作成しました。複数のオブジェクトを入れたいので、それを繰り返しますジャンゴ内のリスト(これは物事の正しい方法は何ですか?)クラスに動的に追加する
が、私はエラーが何を意味するか知っている以下のエラー
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: 以下の作品を追加し、私はちょうど今のアイテムを印刷する方法を知っておく必要がありますか?:
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
あなたは何をしたいのか分かりません。また、あなたは2つのinitsを必要としません。あなたのクラスがパラメータを取る場合は、ジェームズの提案をするべきです。 –
しかし、あなたがなぜそれらをインスタンスに渡さないのか分かりません。データはすぐそこにあります。 objUser = User(strPolicyName、objOnCall ['level']、getDate(objOnCall ['start'])....) '? –