我正在尝试通过 while(True) 在 Python 中循环它来计算函数返回 True 的概率,但我无法让它工作

I'm trying to calculate a probability of a function returning True by while(True) looping it in Python but I can't get it to work

我正在尝试计算模拟任意事件的预定义函数的概率。是否有图书馆可以这样做或有更好的方法?

from multiprocessing import cpu_count
import multiprocessing

def play_event():
    "predefined function which either returns True or False"

def process(total_events, favorable_results, lock):
    while(True):
        event = play_event()
        with lock:
            total_events += 1
            if(event == True):
                favorable_results += 1
        

if __name__ == "__main__":
    seed(1)

    manager = multiprocessing.Manager()
    lock = manager.Lock()
    number_processes = cpu_count()

    total_events = manager.Value(int, 0)
    favorable_results = manager.Value(int, 0)

    jobs = []

    for i in range(number_processes):
        p = multiprocessing.Process(target=process, args=(total_events, favorable_results, lock))
        jobs.append(p)
        p.start()

    while(True):
        if(total_events.value > 0):
            print(Decimal(favorable_results.value)/total_events.value)

现在我收到错误:TypeError: unsupported operand type(s) for +=: 'ValueProxy' and 'int',在处理函数中,当我将 1 添加到 total_events。不幸的是,我不认为这是唯一的错误。在我没有得到这个错误之前 total_events.value 一直是 1.

使用total_events.get()获取当前值,使用total_events.set(x)将值设置为x。 - 约翰·戈登

他的回答在我问题的回复里。