Python:将函数放入类中

Ara*_*eel 3 python class function

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

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()
Run Code Online (Sandbox Code Playgroud)

Bak*_*riu 5

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

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)
Run Code Online (Sandbox Code Playgroud)

您可以将其用作:

# 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()
Run Code Online (Sandbox Code Playgroud)

请注意,在创建类时,您必须使用self.