在将某些外部模块方法应用于类时,我需要能够将arg = 'value'
的不同对传递给函数,例如:
Ad.nodes.get(id_ = '11974312')
如何将字典或元组传递给该函数,以便将'id_'
(字符串)识别为id_
(参数)
('id_', '11974312')
(元组)还是{'id_':'11974312'}
(词典)?
基本上,我只需要从id_
中取出'id_'
作为参考,我正在尝试将neomodel模块用于neo4j图数据库。
答案 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)