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)
你的意思是做这样的事情:
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.