如何将字符串转换为参数?

时间:2019-02-11 12:14:33

标签: python

在将某些外部模块方法应用于类时,我需要能够将arg = 'value'的不同对传递给函数,例如:

Ad.nodes.get(id_ = '11974312')

如何将字典或元组传递给该函数,以便将'id_'(字符串)识别为id_(参数) ('id_', '11974312')(元组)还是{'id_':'11974312'}(词典)?

基本上,我只需要从id_中取出'id_'

作为参考,我正在尝试将neomodel模块用于neo4j图数据库。

2 个答案:

答案 0 :(得分:5)

如果我正确理解了您的问题,那么您正在寻找**运算符。

示例:

kwargs = {'first': 3, 'second': 6}

def add(first, second):
    return first + second

print(add(**kwargs) == 9)

这将打印True。将**应用于dict参数时,它将分解为关键字参数。

答案 1 :(得分:0)

可以使用inspect.signature(function name).parameters.keys()将参数名称读取为字符串,其中,function name是函数名称,该参数需要读取为字符串

示例:

    import inspect, itertools 
dictionary={'id':'David','ip':'11.1.1.20'}
def func(id,ip):
                    func_argument = list(inspect.signature(func).parameters.keys() )
                    print(func_argument)
                    #Print the value from dic for each argument which is key in dict
                    for i in func_argument:
                        print(dictionary[i])                    
func(id=100,ip=200)