Python multiprocessing多进程代码运行print无数值输出问题咨询
问题原因
你的多进程逻辑本身完全正确,出现该问题是字符串格式化的语法错误,和multiprocessing模块无关。
Python的str.format()方法要求字符串中必须使用占位符{}来标记参数插入的位置,你现有代码中的'Cube: '.format(num*num*num)、'Square: '.format(num*num)的字符串前缀没有预留占位符,传入的计算结果无法被插入到输出字符串中,因此只会打印固定前缀。
解决方法
仅需修改两个打印函数的格式化逻辑即可,有两种常用实现方案:
- 方案1:保留format语法,给字符串添加占位符
def print_cube(num): print('Cube: {}'.format(num*num*num)) def print_square(num): print('Square: {}'.format(num*num))
- 方案2:使用Python3.6及以上版本支持的f-string语法,写法更简洁直观
def print_cube(num): print(f'Cube: {num*num*num}') def print_square(num): print(f'Square: {num*num}')
修改后运行即可得到预期输出:
Cube: 1000 Square: 100 Done!
内容的提问来源于stack exchange,提问作者Hung Vo Van
相关产品推荐
相关产品推荐

