Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于字符串的值创建变量_Python_Dry - Fatal编程技术网

Python 基于字符串的值创建变量

Python 基于字符串的值创建变量,python,dry,Python,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='')

我想根据变量名列表启动一个类

为了澄清,以下是我的非干式代码:

    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=''))
它不是干的-如果我想更改端点的名称,我需要更改两次

有没有办法做到这一点:

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=''))

看起来像是你通常使用的。然后,您可以使用一个函数来清理对
\u get
的详细调用:

class Dry(object):
    def __init__(self, page):
        ...
        for item in lst:
            setattr(self, item, self.alloc(item))

    def alloc(self, endpoint, period=''):
        return _get(obj=self._request(endpoint=endpoint, period=period))

你试过hasattr/getattr吗?