我有父类广告,有2个孩子直接和Adword。在另一方面,我有父类Campaign与2个孩子DirectCampaign和AdwordsCampaign。 Campaign类包含相应广告子级实例的数组。
class Ad:
def __init__(self, keyword, negative_keywords, url):
self.keyword = keyword
self.negative_keywords = negative_keywords
self.url = url
class Direct(Ad):
def __init__(self, keyword, negative_keywords, headline, description, url):
super().__init__(keyword, negative_keywords, url)
self.url_with_utm = url + "?"
class Adword(Ad):
def __init__(self, keyword, negative_keywords, headline1, headline2, description, url):
super().__init__(keyword, negative_keywords, url)
class Campaign():
ads = []
def __init__(self, name):
self.name = name
def add(self, ad):
self.ads.append(ad)
class DirectCampaign(Campaign):
def __init__(self, name):
super().__init__(name)
class AdwordsCampaign(Campaign):
pass
def main():
direct = DirectCampaign("adv_search")
direct.import_from_csv('direct.csv')
我的主要目标是将DirectCampaign转换为AdwordsCampaign,但我无法理解如何根据OOP执行此操作(哪个类应该有这样的方法,我应该在那里调用AdwordsCampaign构造函数和之后的Adwords构造函数。)
次要目标是DirectCampain有name属性,我如何在Direct实例中访问它?我应该通过构造函数将它传递给每个Direct实例吗?
欢迎任何代码反馈。