在不使输入有任何不同的情况下按顺序传递 kwarg 的解决方法



一般的想法是先创建一个OrderedDict并将其传递给函数,但是这看起来很混乱。有很多关于对 kwargs 进行排序的建议,但这似乎是唯一的解决方案 - 在 Python 中,在迭代 kwargs 时,是什么决定了顺序?

但是,我想知道是否可以使用一些 python 功能来允许简单的输入?所以myFunction( a=5, c=2, b=3 ) 将保持顺序,而不必将内部值包装在 OrderedDict 中。

这是一些不起作用的代码,但这是我的想法,不知道如何实现

class testing:
    def __init__( self, kwargs ):
        print kwargs
testing2 = testing( OrderedDict( valueToInput ) )
testing2( a=5, c=2, b=3 )
可能

吗?如果有这样的方法可以完成我对 testing2 值所做的工作,那对于其他目的也非常有用。

这(终于)在 python 3.6 中得到了解决,因为 dict 被订购了。

请参阅:PEP468 和新增功能。因此使

最新更新