qscde1 发表于 2021-1-8 21:46:46

求助关于批量赋值,快吐了

本帖最后由 qscde1 于 2021-1-8 21:56 编辑

需求是利用win32com调用DLL来实例化出一批对象,如下


from win32com import client

test1 = client.Dispatch("abc.def")
test2 = client.Dispatch("abc.def")
test3 = client.Dispatch("abc.def")
...
test99 = client.Dispatch("abc.def")

后续用test1.xxx.xxx()来调用DLL里面的API,后面会有1个线程对应1个对象的操作。

尝试过用for循环加exec(test{}=client.Dispatch("abc.def").format,(x))这样的方法虽然不会报错,但是在下一行调用的时候返回的是空值,想请问除了exec还有没有其他比较合适的方式可以造出来多个COMObject对象来让后续调用更方便一点呢,跪求!

{:5_99:} {:5_99:} {:5_99:} {:5_99:} {:5_99:}

hrp 发表于 2021-1-8 21:57:04

为什么要用一堆变量名来储存呢?放进列表它不香么?
from win32com import client

objs =


至于返回空值不一定储存方式的问题

qscde1 发表于 2021-1-9 16:56:35

hrp 发表于 2021-1-8 21:57
为什么要用一堆变量名来储存呢?放进列表它不香么?




放进列表的话,之后如何以列表中每个元素创建单独的线程然后传给线程内的方法调用呢?
用threading.Thread()的args=objs这样子吗?

qscde1 发表于 2021-1-9 17:19:08

qscde1 发表于 2021-1-9 16:56
放进列表的话,之后如何以列表中每个元素创建单独的线程然后传给线程内的方法调用呢?
用threading.Thre ...

好的暂时解决了……
def start():
    pass

for i in range(99):
      a = (objs)
      objs = threading.Thread(target=start,args=(a,))
页: [1]
查看完整版本: 求助关于批量赋值,快吐了