2013-08-22 2 views
0

나는 클래스 같은 실이 지나가는 지금멀티 스레드 매개 변수

import threading, time 
class th(threading.Thread): 
    def run(self): 
     print "Hi" 
     time.sleep(5) 
     print "Bye" 

과의 내가 다른 "수면"의 모든 시간을 원하는 가정 해 봅시다을, 그래서 시도 :

import treading, time 
class th(threading.Thread, n): 
    def run(self): 
     print "Hi" 
     time.sleep(n) 
     print "Bye" 

그것은하지 않습니다 작동, 그것은 나에게 메시지 제공 : 지금

0123에 대한

그룹의 인수가 없음 없어야합니다을

그래서 실행 중에 매개 변수를 전달하려면 어떻게해야합니까?

참고 : 그 같은 클래스의 다른 기능을했다 :

import treading, time 
class th(threading.Thread): 
    def run(self): 
     print "Hi" 
     time.sleep(self.n) 
     print "Bye" 
    def get_param(self, n): 
     self.n = n 

var = th() 
var.get_param(10) 
var.start() 

답변

3

이 시도 - 당신이 한 부분으로 그 변수를 가지고 객체를 필요 있도록 객체에 시간 제한 값을 추가 할 그것의. 클래스를 만들 때 실행되는 __init__ 함수를 추가하면됩니다.

import threading, time 
class th(threading.Thread): 
    def __init__(self, n): 
     self.n = n 
    def run(self): 
     print "Hi" 
     time.sleep(self.n) 
     print "Bye" 

자세한 내용을 보려면 here을 참조하십시오.

+0

'selfn'은'self.n'이어야합니다. – user2357112

+0

고맙습니다. 나는 그것에 대해 생각하지 않았다, 그것은 매우 도움이되었다. –

1
class Th(threading.Thread): 
    def __init__(self, n): 
     super(Th, self).__init__() 
     self.n = n 
    def run(self): 
     print 'Hi' 
     time.sleep(self.n) 

Th(4).run() 

생성자를 정의하고 해당 매개 변수를 생성자에 전달합니다. class 행의 괄호는 부모 클래스 목록을 구분합니다. n은 부모가 아닌 매개 변수입니다.