如何运行Python脚本的某些部分?

2024-10-02 10:20:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了一个脚本来运行其中包含的所有进程,但是我希望能够只运行所需的进程。在

我想我现在遇到了与过去不同的列表用法,但我不太确定该怎么做。在

我有四个函数:foo1、foo2、foo3和foo4。我希望能够有选择地在python脚本中运行这些函数,使用用户使用input()函数插入的特定数量。下面是一个代码示例。在

ListAllVSs = requests.get('https://' + LMIP + '/access/listvs', verify=False, auth=MyCreds)

ListVSOutput = ListAllVSs.content.splitlines()

for Line in ListVSOutput:
    if b"<Index>" in Line:
        IndexLines.append(Line)

NumbersList = [int(re.search(br"\d+", Integer).group()) for Integer in IndexLines]

for Number in NumbersList:
    VSIDAndValue = (
    ('vs', str(Number)),
    )
    requests.get('https://' + LMIP + '/access/delvs', params=VSIDAndValue, verify=False, auth=MyCreds)

所以,这不是一个函数。在

例如,用户应该插入“1”运行foo1,“2”运行foo2,“3”运行foo3,“4”运行foo4,“5”运行foo1和foo2,等等。要运行所有可能的函数组合,总共有15个可能的输入,低于0或高于15的任何数字都应视为无效。在

我想使用“0”来运行所有四个进程,我认为这是可能的,因为Python是如何对其列表位置进行编号的,但是如果需要的话,我可以使用“15”。在

提前谢谢!在


Tags: 函数用户in脚本列表forget进程
2条回答

用字典吧,对不起,我不能评论你的问题我太新了。在

dict_functions = { '1' : foo1, '2' : foo2, '3' : foo3,  '4' : foo4}

user_input = input("What Number foo do you want to run? ")

dict_functions[user_input]()

如果你搞不懂,你能给我一些示例代码吗?如果你想限制你的投入,也要给这个家伙加分 Limiting user input to a range in Python

您可以使用位运算符来测试进程的不同组合:

def foo1():
    print("foo1()")

def foo2():
    print("foo2()")

def foo3():
    print("foo3()")

def foo4():
    print("foo4()")

def input(n):
    if n & (1 << 0) != 0: # (1 << 0) == 1
        foo1()
    if n & (1 << 1) != 0: # (1 << 1) == 2
        foo2()
    if n & (1 << 2) != 0: # (1 << 2) == 4
        foo3()
    if n & (1 << 3) != 0: # (1 << 3) == 8
        foo4()

在这个例子中,从1到15的所有数字都会给出一些输出。 1将打印“foo1()” 4将打印“foo3()” ... 如果要打印“foo1()”和“foo3()”,则应使用参数5(1+4)调用input()

理解这一点的关键是要注意,每个函数fooX的调用基数为2:

n=110=00012->;foo1()
n=210=00102->;foo2()
n=410=01002->;foo3()
n=810=10002->;foo4()

它们的和只是一个布尔运算or|)位到位的运算:

(1+4)10=0001201002=01012=510

然后用&(按位and)运算符将给定位设置为1,并调用相应的fooX()。在

相关问题 更多 >

    热门问题