如何通过传递函数的输出作为输入提供给函数调用Python函数

问题描述 投票:0回答:1

我需要写多次调用该函数蟒蟒函数调用逻辑。

比方说,比如我有一个脚本test.py

我跑像python test.py val脚本

val=sys.argv[1]
def check(param, val):
    .
    .
    .
    if val == valid.text:
        print '{:10s}:{:10}'.format(param, all.text)

values=os.walk(runtime).next()[1]
for param in values:
    check(param, val)

所以这里输出像

driver                          1.1
dmname                          1.5-temp
fdrmenu                         1.0-rem

所以在这里我需要通过取输出输入函数调用运行相同的功能check(param, val)

函数调用像检查(PARAM,VAL) - >点击这里val应为driver等了dmnamefdrmenu

并调用相同的功能driverdmname的输出等,直到我们得到空的所有输出。

这里sys.srgv[1]应分配给VAL仅在第一次,从下一次应该是driverdmname等。

python function input output call
1个回答
0
投票

递归的东西像这样?

data={'driver':'1.1','dmname':'1.5-temp','fdrmenu':'1.0-rem'} 
def check(data,key):
    val = data.pop(key)
    if type(val) == str:
        print(key,val)
        if data: check(data,list(data.keys())[0])
    return None

check(data,list(data.keys())[0])

我不知道如果我正确地理解你的问题,所以我不知道如果我在正确的轨道上。

这个功能基本上采用键/值对的元素的字典(数据)和你的字典,它的第一个键调用它。

check(data,list(data.keys())[0])

在函数内部您提取关联于该键的值,并删除对

val = data.pop(key)

所以字典开始像

{'driver':'1.1','dmname':'1.5-temp','fdrmenu':'1.0-rem'} 

第一键是“驱动器”,值是“1.1”。所以,现在的变量val ==“1.1”,但字典是现在

{'dmname':'1.5-temp','fdrmenu':'1.0-rem'} 

因为第一密钥/值对是与弹出功能删除

然后使用VAL你提取你检查的条件

if type(val) == str:

在这种情况下,VAL ==“1.1”,因此会检查,然后打印键和值是“驾驶”和“1.1”

那么你检查字典不是没有,如果它是不是你在打电话之前相同的方式相同的功能,但因为你从字典中删除第一个键/值对下一首键/值元素将是“dmname ':' 1.5-TEMP”

{'dmname':'1.5-temp','fdrmenu':'1.0-rem'} 

下一次调用该词典将是一个元素

{'fdrmenu':'1.0-rem'} 

最后调用字典将是空的

{}

这样的条件

if data

不会检查该函数将返回None

你可以做这样的事情有对你的情况PARAMS和值的,如果我正确地理解你的问题。

我修改的功能,使用你显然有数据的类型,所以这个函数的输出将是

driver 1.1
dmname 1.5-temp
fdrmenu 1.0-rem
© www.soinside.com 2019 - 2024. All rights reserved.