methods and class methods

2009-03-31 Thread Zach Goscha
I just learned python programming and is wondering how to change a method to
a class method. Also what are the differences between a method and class
method.

Thanks in advance
- Zach (Freshman student in High school)
--
http://mail.python.org/mailman/listinfo/python-list


Re: methods and class methods

2009-03-31 Thread Daniel Fetchinson
 I just learned python programming and is wondering how to change a method to
 a class method.

class x( object ):
@classmethod
i_will_be_a_class_method( cls ): pass

 Also what are the differences between a method and class method.

A class method receives the class as its first argument while an
ordinary method receives the instance as its first argument. This fact
is reflected in the convention that for class methods the first
argument typically is called cls while for ordinary methods it's
called self.

Cheers,
Daniel


-- 
Psss, psss, put it down! - http://www.cafepress.com/putitdown
--
http://mail.python.org/mailman/listinfo/python-list


calling class methods from class methods, help?

2009-03-11 Thread Oltmans
I've a multithreaded program in which I've to call class methods from
class methods. Here is how my code look like (excluding imports),. Any
help is highly appreciated.

#!/usr/bin/env python
class Requests(Thread):

def __init__(self, times):
Thread.__init__(self)
self.times=times
self.name=''
def run(self):

sites=['example.com','example1.com']
for i in range(0,self.times):
for site in sites:
self.name = site
self.html=SendRequest() # This line throws an error

def SendRequest(self): #A class method
# it sends a request to website using mechanize library

def startThis(times,reqs):

threads=[]
for i in range (0,reqs):
owner=Requests(times)
owner.start()
threads.append(owner)

for thread in threads:
thread.join()

if __name__==__main__:
#I want to create 2 threads, each of them will execute twice. At
least that is the intention.
startThis(2,2)



--
http://mail.python.org/mailman/listinfo/python-list


Re: calling class methods from class methods, help?

2009-03-11 Thread Oltmans
On Mar 11, 10:08 pm, Oltmans rolf.oltm...@gmail.com wrote:
                 self.html=SendRequest() # This line throws an error

and error says
NameError: global name '_Requests_SendRequest' is not defined.
--
http://mail.python.org/mailman/listinfo/python-list


Re: calling class methods from class methods, help?

2009-03-11 Thread MRAB

Oltmans wrote:

I've a multithreaded program in which I've to call class methods from
class methods. Here is how my code look like (excluding imports),. Any
help is highly appreciated.

#!/usr/bin/env python
class Requests(Thread):

def __init__(self, times):
Thread.__init__(self)
self.times=times
self.name=''
def run(self):

sites=['example.com','example1.com']
for i in range(0,self.times):
for site in sites:
self.name = site
self.html=SendRequest() # This line throws an error

Should be:
self.html = self.SendRequest()



def SendRequest(self): #A class method
# it sends a request to website using mechanize library

def startThis(times,reqs):

threads=[]
for i in range (0,reqs):
owner=Requests(times)
owner.start()
threads.append(owner)

for thread in threads:
thread.join()

if __name__==__main__:
#I want to create 2 threads, each of them will execute twice. At
least that is the intention.
startThis(2,2)



--
http://mail.python.org/mailman/listinfo/python-list


Re: calling class methods from class methods, help?

2009-03-11 Thread Chris Rebert
On Wed, Mar 11, 2009 at 10:08 AM, Oltmans rolf.oltm...@gmail.com wrote:
 I've a multithreaded program in which I've to call class methods from
 class methods.

Um, those are instance methods, not class methods. Class methods take
the class itself as an argument (the parameter is typically named
cls instead of self) and are defined with the help of the
classmethod() function, which is not the case in your code.

Cheers,
Chris

-- 
I have a blog:
http://blog.rebertia.com
--
http://mail.python.org/mailman/listinfo/python-list


Re: calling class methods from class methods, help?

2009-03-11 Thread Piet van Oostrum
 Oltmans rolf.oltm...@gmail.com (O) escribió:

O I've a multithreaded program in which I've to call class methods from
O class methods. Here is how my code look like (excluding imports),. Any
O help is highly appreciated.

O #!/usr/bin/env python
O class Requests(Thread):

O def __init__(self, times):
O Thread.__init__(self)
O self.times=times
O self.name=''
O def run(self):

O sites=['example.com','example1.com']
O for i in range(0,self.times):
O for site in sites:
O self.name = site
O self.html=SendRequest() # This line throws an error

self.html=self.SendRequest()
-- 
Piet van Oostrum p...@cs.uu.nl
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: p...@vanoostrum.org
--
http://mail.python.org/mailman/listinfo/python-list


Re: calling class methods from class methods, help?

2009-03-11 Thread Oltmans
On Mar 11, 11:00 pm, Piet van Oostrum p...@cs.uu.nl wrote:
                     self.html=self.SendRequest()
 --

Thank you, everyone, for the help. Appreciate that.

 Piet van Oostrum p...@cs.uu.nl
 URL:http://pietvanoostrum.com[PGP 8DAE142BE17999C4]
 Private email: p...@vanoostrum.org- Hide quoted text -

 - Show quoted text -

--
http://mail.python.org/mailman/listinfo/python-list


Re: calling class methods from class methods, help?

2009-03-11 Thread Terry Reedy

Oltmans wrote:

I've a multithreaded program in which I've to call class methods from
class methods. Here is how my code look like (excluding imports),. Any
help is highly appreciated.

#!/usr/bin/env python
class Requests(Thread):

def __init__(self, times):
Thread.__init__(self)
self.times=times
self.name=''
def run(self):

sites=['example.com','example1.com']
for i in range(0,self.times):
for site in sites:
self.name = site
self.html=SendRequest() # This line throws an error


You should (almost) always display the error traceback.  I suspect 
NameError: global 'SendRequest' not found.  You need 
Requests.SendRequest.  but...



def SendRequest(self): #A class method


If it were, then call the parameter 'cls', not 'self'.  But it is not a 
classmethod without @classmethod decorator.  but...



# it sends a request to website using mechanize library


Does this need to send the class rather than instance object to the 
website?  If not, better to leave it an instance method and use 
self.SendRequest above.  If the request uses instance variables, then it 
*must* be an instance method!


def startThis(times,reqs):

threads=[]
for i in range (0,reqs):
owner=Requests(times)
owner.start()
threads.append(owner)

for thread in threads:
thread.join()

if __name__==__main__:
#I want to create 2 threads, each of them will execute twice. At
least that is the intention.
startThis(2,2)



--
http://mail.python.org/mailman/listinfo/python-list



--
http://mail.python.org/mailman/listinfo/python-list