方法同时返回自身和值

时间:2018-09-09 19:29:31

标签: python python-3.x mysql-python

我正在mysql连接器上创建python包装器。到目前为止,很简单:

class DBconnector:
    def __init__(self, columns=None, values=None):
        #connect to db
        pass

    def getcolumns(self, database=None):
        columns = ("columnA1", "columnA2")
        return columns

    def getvalues(self, table=None, columns=None):
        values = ("valB1", "valB2")
        columns = columns
        return values

    def getprimary_key(self, table=None):
        table_key = "someTableKey"
        return table_key

db_conn = DBconnector()
mycolumns = db_conn.getcolumns()
myvalues = db_conn.getvalues()
mykey = db_conn.getprimary_key()
print(mycolumns, myvalues, mykey)
>>>> ('columnA1', 'columnA2') ('valB1', 'valB2') someTableKey

现在,我想实现诸如.as_list().as_dict()等之类的链接方法……这将使我能够在某些情况下获取所需的数据。例如,当我问db_conn.getvalues.asdict()时,我将获得值和列作为键。 我可以这样实现:

class DBconnector:
    def __init__(self, columns=None, values=None):
        #connect to db
        self.columns = columns
        self.values = values

    def getvalues(self, table=None, columns=None):
        self.values = ("valB1", "valB2")
        self.columns = columns
        return self

    def __repr__(self):
        return str(self.values)

    def asdict(self):
        mydict = {}
        for idx, col in enumerate(self.columns):
            mydict[col] = self.values[idx]
        return mydict

db_conn = DBconnector()
mycolumns = db_conn.getvalues(columns=["mycolumn1", "mycolumn2"])
print(mycolumns)
print(type(mycolumns))

mydictcolumns = mycolumns.asdict()
print(mydictcolumns)

>>>> ('valB1', 'valB2')
>>>> <class '__main__.DBconnector'>
>>>> {'mycolumn1': 'valB1', 'mycolumn2': 'valB2'}

但是我对此方法有一些疑问和疑问:

主要方法getvalues()将仅返回无法再直接解析的对象,我将不得不实现其他方法以获取诸如.values()(?)之类的值。 总的来说,我不确定如何避免复杂化,使其易于使用和可读。设计这样的类/模块的正确方法是什么?

0 个答案:

没有答案