1
変数の名前のリストに基づいてクラスを開始したいと考えています。ここでは、明確にする文字列の値に基づいて変数を作成する
は私の非DRYコードです:
def __init__(self, page):
self.page_id = page.page_id
self.page_access_token = page.page_access_token
self.page_fans_country = _get(obj=self._request(endpoint='page_fans_country', period=''))
self.page_fans_gender_age = _get(obj=self._request(endpoint='page_fans_gender_age', period=''),)
self.page_impressions = _get(obj=self._request(endpoint='page_impressions', period=''))
self.page_impressions_unique = _get(obj=self._request(endpoint='page_impressions_unique', period=''))
self.page_impressions_by_country_unique = _get(obj=self._request(endpoint='page_impressions_by_country_unique', period=''))
self.page_impressions_by_age_gender_unique = _get(obj=self._request(endpoint='page_impressions_by_age_gender_unique', period=''))
self.page_engaged_users = _get(obj=self._request(endpoint='page_engaged_users', period=''))
self.page_consumptions = _get(obj=self._request(endpoint='page_consumptions', period=''))
self.page_consumptions_unique = _get(obj=self._request(endpoint='page_consumptions_unique', period=''))
それはDRYではありません - 私は、エンドポイントの名前を変更したい場合には、私は二度変更を加える必要があります。
def __init__(self, page):
self.page_id = page.page_id
self.page_access_token = page.page_access_token
list = ['page_fans_country','page_fans_gender_age',(...)]
for element in list:
self.{ var with the name of element } = _get(obj=self._request(endpoint=element, period=''))
hasattr/getattrを試しましたか? –