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