Skip to main content
 首页 » 编程设计

python : putting functions into classes

2025年05月04日36JeffreyZhao

我对 Python 有点陌生,我想更好地理解类。下面是一些函数,它们有很多相似之处,但传递给每个 multiprocessing 函数的函数不同。无论如何,我可以将所有这些功能放入一个名为 FruitPie 的 class 中吗?

def apple(): 
    if __name__ == '__main__': 
        pool = mp.Pool(processes=8) 
        pool.map(func1, same_list) 
        pool.close() 
 
def banana(): 
    if __name__ == '__main__': 
        pool = mp.Pool(processes=8) 
        pool.map(func2, same_list) 
        pool.close() 
 
def orange(): 
    if __name__ == '__main__': 
        pool = mp.Pool(processes=8) 
        pool.map(func3, same_list) 
        pool.close() 

请您参考如下方法:

你的意思是做这样的事情:

class FruitPie: 
    def __init__(self, arguments): 
        self.same_list = arguments 
 
    def apple(self): 
        # in python3.3+ you can use the with statement with Pools 
        with mp.Pool(processes=8) as pool: 
            pool.map(func1, self.same_list) 
 
    def banana(self): 
        with mp.Pool(processes=8) as pool: 
            pool.map(func2, self.same_list) 
 
    def orange(self): 
        with mp.Pool(processes=8) as pool: 
            pool.map(func3, self.same_list) 

您可以用作:

# this if is needed only at module level, not everytime you create a pool. 
if __name__ == '__main__': 
    pie = FruitPie(['some', 'arguments']) 
    pie.apple() 
    pie.banana() 
    pie.orange() 

请注意,在创建类时,您必须使用 self 显式引用实例。