Python在for循环中添加对象
我有以下代码Python在for循环中添加对象,python,list,for-loop,Python,List,For Loop,我有以下代码 old_county_code = -1 old_placement_id = -1 placements = [] for row in raw_data: #raw_data is one line from the database retrieved by cursor.fetchall() placement_id = row[1] if placement_id != old_placement_id:
old_county_code = -1
old_placement_id = -1
placements = []
for row in raw_data: #raw_data is one line from the database retrieved by cursor.fetchall()
placement_id = row[1]
if placement_id != old_placement_id:
placement = Objects.placement()
placement.placement_id = placement_id
placements.append( placement )
country_code = row[3]
if old_county_code != country_code:
country = Objects.country()
country.country_id = country_code
placement.countries.append( country )
creative = Objects.creative( row[2], row[0], row[4], row[5], row[6], row[7] )
country.creatives.append( creative )
old_placement_id = placement_id
old_county_code = country_code
对象放置包含一个国家的列表,这些国家本身也包含一个创造性的列表。因此,当我运行这段代码时,我注意到每个位置都有与列表object placement.countries中包含的country对象数量完全相同的country对象。事实并非如此。我想我的代码有问题,但我不知道是什么
这是对象代码
class placement(object):
placement_id = 0
countries = []
class country(object):
country_id = 0
creatives = []
class creative(object):
creative_id = 0
matching_id = 0
clicks = 0
impressions = 0
ctr = 0.0
rank = 0.0
使内部变量基于实例而不是基于类
class placement(object):
def __init__(self):
self.placement_id = 0
self.countries = []
class country(object):
def __init__(self):
self.country_id = 0
self.creatives = []
class creative(object):
def __init__(self)
self.creative_id = 0
self.matching_id = 0
self.clicks = 0
self.impressions = 0
self.ctr = 0.0
self.rank = 0.0
不知道你想从你的帖子中做什么。。。制作一个小示例(非常小),显示所有输入和输出,然后将预期输出也显示出来。这是一个“类与实例”变量问题。