0
t = (('page',1),('count',25),('skip',0))

def get_arguments(t):
 page = 1
 count = 25
 skip = 0

基本的に、例のようにタプルを反復処理してこれらの引数を関数に設定する最良の方法は何ですか?

4

5 に答える 5

4

次のものも使用できます**kwargs

t = (('page',1),('count',25),('skip',0))
arguments = dict(t)

def get_arguments(page, count, skip):
    #page = 1
    #count = 25
    #skip = 0

#call your function with
get_arguments(**arguments)

また、変数にtupleという名前を付けないでください。

于 2013-09-29T18:43:32.523 に答える
0

あなたはこれを行うことができます:

page, count, skip = [t[1] for t in tuple]
于 2013-09-29T18:44:29.113 に答える
0
tupleData = (('page',1),('count',25),('skip',0))

class DottedDict(dict):
    def __init__(self, *a, **k):
        super(DottedDict, self).__init__(*a, **k)
        self.__dict__ = self

def get_arguments(tupleArg):
   d = DottedDict(tupleArg)
   print d.page, d.count, d.skip

get_arguments(tupleData)

原則として、代わりに etc.を実行すると法線dictも同様に機能しますが、ドット付きアクセスはさらに短くなります。d['page']

于 2013-09-29T18:45:00.323 に答える
0
tupleData = (('page',1),('count',25),('skip',0))

def get_arguments(tupleArg):
   page, count, skip = zip(*tupleArg)[1]
   print page, count, skip

get_arguments(tupleData)

出力

1 25 0
于 2013-09-29T18:42:06.360 に答える
0
def get_arguments(page,count,skip):
     print page, count, skip

get_arguments(page=1, count=25, skip=0)
于 2013-09-29T18:43:10.293 に答える