Стиль строки документа для неизвестного атрибута класса? - PullRequest
0 голосов
/ 17 января 2019

У меня есть класс, который собирается проанализировать базу данных и создать n чисел атрибутов, где каждый атрибут представляет собой массив NumPy данных в базе данных, а имя этого атрибута является именем переменной в базе данных. У класса есть аргумент (srqs), представляющий собой список строк, где каждая строка - это имя переменной для извлечения из базы данных.

Как мне сделать мои строки документации, чтобы указать, что действительные имена переменных в srqs станут атрибутами экземпляров класса?

class DataBase(object):
    """Creates an instance of the database and the requested srqs
    Attributes:
        dbname (str): Database filename to use.
        ???
    """

    def __init__(self, dbname=None, srqs=None):
        self.dbname = dbname
        self.extract_data()

    def extract_data(self):
        with OpenDB(self.dbname) as db:
            for srq in srqs:
                db.__dict__[srq] = db.GetData(srq)

>>>foo = DataBase('/usr/bin/testdb.bar', ['s1', 's2', 'T'])
>>>foo.__dict__
{'dbname': '/usr/bin/testdb.bar', 's1': np.array([0,0,0]), ...}

1 Ответ

0 голосов
/ 17 января 2019

Как насчет этого (в основном это занимает последнее предложение вашего вопроса, я думаю, вы достаточно хорошо это сформулировали):

class DataBase(object):
    """Creates an instance of the database and the requested srqs
    Attributes:
        dbname (str): Database filename in use.
    """

    def __init__(self, dbname=None, srqs=None):
        """
            Arguments:
            dbname (str): Database filename to use.
            srqs (sequence): Valid variable names in srqs will become attributes of an instance of the class
        """
        self.dbname = dbname
        self.extract_data()
...