首页 \ 问答 \ 将参数从类传递到继承自threading.Thread的另一个类(Pass arguments from a class to another class that inherits from threading.Thread)

将参数从类传递到继承自threading.Thread的另一个类(Pass arguments from a class to another class that inherits from threading.Thread)

我的python代码中有两个类。 Filtro类必须向Filtro类发送两个参数,但是如果我通过costructor发送它们,我永远不会调用线程metod start costructor。 这是我的代码:

import threading

class Man_Thr(threading.Thread):
  def __init__(self,cmd,q):
    self.comando=cmd
    self.coda=q

  def run(self):
    try:
        proc=subprocess.Popen([self.comando],
                shell=True,
                stdin=subprocess.PIPE,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
            )
        self.coda.put(proc)
    except:
        print "Il comando", self.comando, "non esiste. Riprovare."
        self.coda.put(-1)

class Filtro(Man_Thr):
  def __init__(self,cmd):
    q=Queue.Queue()
    thr=Man_Thr(cmd,q)
    thr.start()
    self.result=q.get()

filtro=Filtro(' '.join(sys.argv[1:len(sys.argv)-1]))

这是我的输出:

Traceback (most recent call last):
File "filtro2.py", line 75, in <module>
  filtro=Filtro(' '.join(sys.argv[1:len(sys.argv)-1]))
File "filtro2.py", line 45, in __init__
  thr.start()
File "/usr/lib64/python2.6/threading.py", line 465, in start
  raise RuntimeError("thread.__init__() not called")
RuntimeError: thread.__init__() not called

我以这种方式运行脚本:

 python filtro2.py ./a.out input.txt

将参数从派生类发送到基类的最佳方法是什么?


I have two class in my python code. The class Filtro must to send two parameters to the class Man_Thr but if I send them by the costructor I never call the costructor for the thread metod start. This is my code:

import threading

class Man_Thr(threading.Thread):
  def __init__(self,cmd,q):
    self.comando=cmd
    self.coda=q

  def run(self):
    try:
        proc=subprocess.Popen([self.comando],
                shell=True,
                stdin=subprocess.PIPE,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
            )
        self.coda.put(proc)
    except:
        print "Il comando", self.comando, "non esiste. Riprovare."
        self.coda.put(-1)

class Filtro(Man_Thr):
  def __init__(self,cmd):
    q=Queue.Queue()
    thr=Man_Thr(cmd,q)
    thr.start()
    self.result=q.get()

filtro=Filtro(' '.join(sys.argv[1:len(sys.argv)-1]))

and this is my output:

Traceback (most recent call last):
File "filtro2.py", line 75, in <module>
  filtro=Filtro(' '.join(sys.argv[1:len(sys.argv)-1]))
File "filtro2.py", line 45, in __init__
  thr.start()
File "/usr/lib64/python2.6/threading.py", line 465, in start
  raise RuntimeError("thread.__init__() not called")
RuntimeError: thread.__init__() not called

I run the script in this way:

 python filtro2.py ./a.out input.txt

What's the best method for send the parameters from a derivated class to a base class?


原文:https://stackoverflow.com/questions/30197023
更新时间:2023-11-04 20:11

最满意答案

你可能想使用forward/4

forward "/child", ChildWeb.Router

You probably want to use forward/4:

forward "/child", ChildWeb.Router

相关问答

更多

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。