首页 > 编程知识 正文

如何修改这段python代码,python代码怎么修改

时间:2023-12-28 21:11:01 阅读:329079 作者:CQZD

本文目录一览:

这段PYTHON代码怎么修改?

把这些写成一个函数

然后进行 加入多进程池,进程数10个 例如:

from multiprocessing import Pool

import os, time, random

def worker(msg):

t_start = time.time()

print('{}开始执行,进程号为 {}'.format(msg, os.getpid()))

# random.random() #随机生成0-1之间的浮点数

time.sleep(random.random() * 2)

t_stop = time.time()

print('{} 执行完毕,耗时{}'.format(msg, t_stop - t_start))

def main():

po = Pool(3)

for i in range(10):

# Pool.apply_async(强调要用的目标, (传递参数,))

po.apply_async(worker, (i,))

print('---开始---')

po.close() # 关闭进程池,关闭后po不再接受新的请求

po.join() # 等待po中所有进程执行完成,必须放在close语句之后

print('---结束---')

if __name__ == '__main__':

main()

这个Python代码该怎么改?为什么错了?

Python告诉你:float()函数的参数需要是一个字符串或一个数,不能是列表

两种方法解决:

将参数更改(不推荐,达不到原本的想法)

改代码(推荐):

1. 把159行改为:self.score = list(map(float, score))

2. 在159行下面添加:self.cource = max(self.score)

(第2项是为了get_cource方法不报错)

3. 运行,看看是否OK

(如果还报错可以追问,求采纳)

python这个代码没输出,没报错,怎么改?

要使用线程:

要么定义一个类继承threading.Thread,重写run方法;

要么创建一个threading.Thread类的对象,将你要线程执行的函数指定为target参数。

你这里定义了类ThreadClass,但没继承threading.Thread类,又指定了target,但指定的是一个类不是一个函数,所以没输出。

非要这样搞,可以改成这样:

import threading

class ThreadClass:

def __init__(self,num): self.num = num

def run(self):

print("this is def ",self.num)

n=['a','b','c','d','e']

lis=[]

for i in n:

th = threading.Thread(target=ThreadClass.run,args=(ThreadClass(i),))

lis.append(th)

for t in lis:

t.start()

for t in lis:

t.join()

缩进格式见图:

运行结果如下:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。