方法重载的pythonic方法是什么?

时间:2017-09-06 12:33:31

标签: python

目前我专注于编写代码的pythonic方式,我遇到了两种情况,我想知道什么是最好的。

首先是方法重载的情况,这在python中是不可用的。我如何才能最好地解决我有一个从数据库中获取数据的函数的情况,但是根据参数是整数或整数列表,查询会有所不同。例如:

def getData(ids):
    if type(ids) == int:
        # query the database in an efficient manner for a single ID
    elif type(ids) is list:
        # query the database in a different manner efficiently for multiple ID's
        # also return the data differently

我是否可以在单个函数中完成所有工作,还是使用从上述函数调用的不同函数来完成工作?或者我只需要明确地调用一个不同的函数,具体取决于我是否有一个ID列表或只有一个ID?你认为最好的是什么?

1 个答案:

答案 0 :(得分:1)

使用isinstance

import collections

def getData(ids):
    if isinstance(ids, collections.Iterable):
        # query the database efficiently for multiple ID's
    else:
        # query the database in an efficient manner for a single ID