Basic Python Query

Ulrich Eckhardt ulrich.eckhardt at dominolaser.com
Wed Aug 21 05:11:18 EDT 2013


Am 21.08.2013 08:50, schrieb chandan kumar:
> class Test(threading.Thread):
>        def StartThread(self):
>         Lock = threading.Lock()
>          self.start()

Inconsistently indented code, this is a killer for Python. Please read 
PEP8 and use four spaces! That said, there is never a need for deriving 
from the Thread class, you can also use it to run a function without 
that. That way is IMHO clearer because the threading.Thread instance is 
not the thread, just like a File instance is not a file. Both just 
represent handles for manipulating the actual thing.

Further, you have a local variable called "Lock" here (should be 
lowercase, see PEP 8) that you don't use. This is either a bug you 
missed or at least code that you didn't trim in order to produce a 
minimal example.


> class Test1(threading.Thread):
>      def __init__(self):
>          threading.Thread.__init__ ( self )

Check out the "super()" syntax.


> 1.Difference between  def StartThread(self) and def __init__(self):

__init__ is a special function that gets called automatically. Search 
online for the documentation and or further explanations.


> 3. Lets say self is passed explicitly for all the methods Like
>      def method1(self)
>           method2()
>     def  method2(self):
>           method3()
>     def method(self)
>          method4()
>     def method4(self)
> What does self holds in method4 ,Is it self argument from method1?
> Sorry i'm confused with self argument.

"self" is just a name like others, only that it is customarily used for 
the first parameter of memberfunctions, i.e. for the instance of the 
according class. That said, above seven lines don't really serve to 
illustrate anything, because they are far from valid Python code.

I think before tackling threading, you should first go through some 
tutorials and documentation. I'd start with http://docs.python.org 
and/or do some online searches.

Good luck!

Uli




More information about the Python-list mailing list