使用for循环,我想追加字典的一个对象的属性:访问对象属性的同一属性循环的结果[python]的
do = direct_objects[0].point_logs
for direct_object in direct_objects: #Contains two objects
print (do is direct_object.point_logs) #Gives true both times
do = direct_object.point_logs
print(direct_object.id) #objects are different instances
dates = generate_dates_interval('2017-01-01', '2017-04-01', 14) #Generates dates with an interval of 14 days for the given period
for i in range(0, len(dates)-1):
point_logs, interval_logs, cum_logs = get_point_logs(direct_object, dates[i],
dates[i+1]) # gets logs for given period
if point_logs is not None:
direct_object.point_logs.append(point_logs)
if interval_logs is not None:
direct_object.interval_logs.append(interval_logs)
if cum_logs is not None:
direct_object.cum_logs.append(cum_logs)
我想通过日期循环和追加所有记录到DirectObject的实例point_logs
。然而,我得到的是,不是两个独立的列表,direct_object.point_logs成为两个直接对象的所有点日志的大列表。
class DirectObject(object):
def __init__(self, id, created_date, deleted_date, name, type, point_logs = [], interval_logs = [], cum_logs= [],
services = None):
self.id = id
self.created_date = created_date
self.deleted_date = deleted_date
self.name = name
self.type = type
self.point_logs = point_logs
self.interval_logs = interval_logs
self.cum_logs = cum_logs
self.services = services
def __str__(self):
return str(self.name) + " id: " + str(self.id) + " type: " + str(self.type)
def __repr__(self):
return str(self.name) + " id: " + str(self.id) + " type: " + str(self.type)
这是怎么发生的?
这是虽然我只使用它用于调试目的 – k88
'do'不是一个Python关键词BTW。它是一个'c'关键字。神秘的是为什么它像一个关键字突出显示。 –
语法突出显示了我:P – alDiablo