我已经创建了一个新类,我正在尝试动态地添加到该类中, 我已经创建了一个列表,我想在其中放置多个对象,然后我将在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
更新: 加上下面的作品,我只需要知道如何打印项目现在?你知道吗
def __init__(self):
pass
下面的
for item in lstOnCall:
print item()
退货
print item()
AttributeError: User instance has no __call__ method
默认情况下,可以将所有参数
__init__
设置为None
:将构造函数方法的位置参数转换为具有有用默认值的命名可选参数:
可以为类编写动态构造函数(
def __init__
),以便:__attrs
存储变量名。我使用了双下划线变量,因此无法从extend访问它。你知道吗是的,有其他方法可以访问双下划线变量,但没有人会这样做;)
__str__
不存在,则函数__repr__
通过调用print
或str
返回string
。你知道吗你知道吗 现在测试一下
如果您使用我的代码,您可以打印案例中的项目,以便:
代码的其他问题
Python中没有定义
Function overloading
。您可以在python中定义同名的多个函数。但这毫无意义。只有最后的定义仍保留在class
/module
中。前面的定义将被覆盖。你在做什么是假。它在Java或C#中工作,但在Python中不工作。函数
def __init__(self, a, b, c)
将被覆盖。类中只存在函数def __init__(self)
。你知道吗相关问题 更多 >
编程相关推荐