Python 如何组合多个真正的函数过程?

Python 如何组合多个真正的函数过程?,python,function,python-2.7,while-loop,python-multiprocessing,Python,Function,Python 2.7,While Loop,Python Multiprocessing,我对编程和python非常陌生,你能帮我写代码吗?我不知道如何让它工作。我必须用class吗?同样的变量如何在多个函数中使用?我需要多重处理吗 以下是我的测试代码: from time import sleep from multiprocessing import Process def p1(): while True: a = 1+1 sleep(1) def p2(): while True: b = 1+1

我对编程和python非常陌生,你能帮我写代码吗?我不知道如何让它工作。我必须用class吗?同样的变量如何在多个函数中使用?我需要多重处理吗

以下是我的测试代码:

from time import sleep
from multiprocessing import Process

def p1():
    while True:
        a = 1+1
        sleep(1)

def p2():
    while True:
        b = 1+1
        sleep(1)

def p3():
    while True:
        c = a+b
        print c
        sleep(1)

try:
    a1 = Process(target = p1)
    a2 = Process(target = p2)
    a3 = Process(target = p3)

    a1.start()
    a2.start()
    a3.start()

它说我在最后一行有一个无效的语法,它是空的。但是我很确定,即使没有语法,我的代码也不会工作,你能帮我吗?什么是可以更改的?

如果不知道您想要用这些代码实现什么,就很难判断,但是您可能不需要将进程或线程放在一起。你试过发电机的功能吗

def p1(a=0):
    while True:
        yield a
        a = a + 1

def p2(b=0):
    while True:
        yield b
        b = b + 1

def p3(a, b):
    c = a + b
    print c

a_gen = p1()
b_gen = p2(3)
for _ in range(5):
    a = next(a_gen)
    b = next(b_gen)
    p3(a, b)

这将使
p1
p2
从各自的算法中生成连续值,并返回它们以供
p3
组合。(假设
p2
执行与
p1
不同的操作;否则您可以对两者使用相同的生成器函数。)总之,这可能比使用不同的线程和由这些线程操纵的某些全局状态要干净得多。

如果不知道您想要用这些代码实现什么,就很难判断,但您可能不需要将进程或线程放在一起。你试过发电机的功能吗

def p1(a=0):
    while True:
        yield a
        a = a + 1

def p2(b=0):
    while True:
        yield b
        b = b + 1

def p3(a, b):
    c = a + b
    print c

a_gen = p1()
b_gen = p2(3)
for _ in range(5):
    a = next(a_gen)
    b = next(b_gen)
    p3(a, b)

这将使
p1
p2
从各自的算法中生成连续值,并返回它们以供
p3
组合。(假设
p2
执行与
p1
不同的操作;否则您可以对两者使用相同的生成器函数。)总之,这可能比使用不同的线程和由这些线程操纵的某些全局状态要干净得多。

您有一个语法错误,因为在
try
之后必须出现一些
之外的
。请查看文档“我需要多处理吗?”取决于您的情况。您希望实现什么?(1)
p1
p2
功能将无休止地运行。那可能不是你想要的。(2) 在一个函数中定义的变量(例如
p1
中的
a
)是该函数的局部变量;因此,
p3
将不知道有关
a
b
的任何信息,并且将失败,因为这些变量未定义。(3) 正如其他人所指出的,您的
尝试除外
不完整。感谢您的回复@tobias_k我想在每个函数中做一个算法或一些计算,然后将所有这些函数输出合并。似乎最好使用类no来完成?您有一个语法错误,因为在
try
之后必须出现一些
之外的
。查看文档“我需要多处理吗?”取决于。您希望实现什么?(1)
p1
p2
功能将无休止地运行。那可能不是你想要的。(2) 在一个函数中定义的变量(例如
p1
中的
a
)是该函数的局部变量;因此,
p3
将不知道有关
a
b
的任何信息,并且将失败,因为这些变量未定义。(3) 正如其他人所指出的,您的
尝试除外
不完整。感谢您的回复@tobias_k我想在每个函数中做一个算法或一些计算,然后将所有这些函数输出合并。似乎最好使用类no来完成?您有一个语法错误,因为在
try
之后必须出现一些
之外的
。查看文档“我需要多处理吗?”取决于。您希望实现什么?(1)
p1
p2
功能将无休止地运行。那可能不是你想要的。(2) 在一个函数中定义的变量(例如
p1
中的
a
)是该函数的局部变量;因此,
p3
将不知道有关
a
b
的任何信息,并且将失败,因为这些变量未定义。(3) 正如其他人所指出的,您的
尝试除外
不完整。感谢您的回复@tobias_k我想在每个函数中做一个算法或一些计算,然后将所有这些函数输出合并。看来还是上课做比较好不?成功了,非常感谢!!!我对你的代码做了一些修改,在函数中添加了我的算法,并根据需要将它们组合在一起。再次感谢@tobias_k。成功了,非常感谢!!!我对你的代码做了一些修改,在函数中添加了我的算法,并根据需要将它们组合在一起。再次感谢@tobias_k。成功了,非常感谢!!!我对你的代码做了一些修改,在函数中添加了我的算法,并根据需要将它们组合在一起。再次感谢您@tobias_k。