Re: Strange error in Python code

  • From: Storm Dragon <stormdragon2976@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Sun, 13 Dec 2009 15:19:03 -0500

Hi,
I must have remembered incorrectly lol.  All my other code does have
declarations in the __init__ method as well as in its parameters.
Storm


-- 
Thoughts of a Dragon:
http://www.stormdragon.us/
What color dragon are you?
http://quizfarm.com/quizzes/new/alustriel07/what-color-dragon-would-you-be/



On Sun, 2009-12-13 at 12:03 -0800, R Dinger wrote:

>  
> 
> I have never seen any method of initializing vars through the call
> signature only.
>  
> Are you certain you are remembering correctly?  And if so, can you
> give an example?
>  
> Richard
>         ----- Original Message ----- 
>         From: Storm Dragon 
>         To: programmingblind@xxxxxxxxxxxxx 
>         Sent: Sunday, December 13, 2009 9:49 AM
>         Subject: RE: Strange error in Python code
>         
>         
>         
>         Hi,
>         I am very confused.  I thought the vars were getting
>         initialized in the __init__(self, now = time.time(), clicks =
>         1): part.  That's why I had pass in that method.  However,
>         your suggestion fixed the problem I was having.  I had to move
>         both variables though.  So now it reads:
>             def __init__(self):
>                 self.clicks = 0
>                 self.now = time.time()
>         The thing that confuses me is I have written code with
>         variables declared in the () before and they worked.  Why
>         would this time be different?
>         Thanks
>         Storm
>         
>         
>         
>         -- 
>         Thoughts of a Dragon:
>         http://www.stormdragon.us/
>         What color dragon are you?
>         
> http://quizfarm.com/quizzes/new/alustriel07/what-color-dragon-would-you-be/
>         
>         
>         
>         
>         On Sun, 2009-12-13 at 12:30 -0500, Ken Perry wrote: 
>         
>         > 
>         > 
>         >  
>         > 
>         > You need to put self.clicks =0 in the __init__ function
>         > because you’re trying to do this
>         > 
>         >  
>         > 
>         > None+=1
>         > 
>         >  
>         > 
>         > You have to initialize it first 
>         > 
>         >  
>         > 
>         >  
>         > 
>         >  If you were just setting it like
>         > 
>         >  
>         > 
>         > Self.clicks=0 
>         > 
>         >  
>         > 
>         > Then you could do it in the function but that would not be
>         > what you want.  So initialize it and your done.
>         > 
>         >  
>         > 
>         > Note you don’t need __init__ if you are just doing pass
>         > 
>         >  
>         > 
>         >  
>         > 
>         >  
>         > 
>         > From: programmingblind-bounce@xxxxxxxxxxxxx
>         > [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of
>         > Storm Dragon
>         > Sent: Sunday, December 13, 2009 11:26 AM
>         > To: programmingblind@xxxxxxxxxxxxx
>         > Subject: Re: Strange error in Python code
>         > 
>         > 
>         > 
>         > 
>         > Hi,
>         > Lol it seems so obvious now. Forgetting to put self.variable
>         > can be detrimental.
>         > I got all of that fixed and am still getting an error about
>         > no attribute called now, but it is there, I double checked.
>         > Here's the revised code:
>         > import time
>         > class countPresses:
>         >     def __init__(self, now = time.time(), clicks = 1):
>         >         pass
>         > 
>         >     def clickCount(self):
>         >         if time.time() <= self.now + 0.75:
>         >             self.clicks += 1
>         >         self.now = time.time()
>         >         if self.clicks > 2: self.clicks = 1
>         >         return self.clicks
>         > 
>         > test = countPresses()
>         > print str(test.clickCount())
>         > print str(test.clickCount())
>         > 
>         >  
>         > 
>         > 
>         >  
>         > -- 
>         > Thoughts of a Dragon:
>         > http://www.stormdragon.us/
>         > What color dragon are you?
>         > 
> http://quizfarm.com/quizzes/new/alustriel07/what-color-dragon-would-you-be/
>         > 
>         > On Sun, 2009-12-13 at 07:30 -0800, R Dinger wrote:
>         > 
>         > 
>         > 
>         >  
>         > 
>         > 
>         >         Your calls to clickCount do not have parens e.g.
>         >         clickCount(), which is required for a function call.
>         >         Also you have an undefined local variable in click
>         >         count named now, which is used prior to having a
>         >         value. 
>         >         
>         >           
>         >         
>         >         Richard 
>         >         
>         >         
>         >                 ----- Original Message ----- 
>         >                 
>         >                 From: Storm Dragon 
>         >                 
>         >                 To: programmingblind@xxxxxxxxxxxxx 
>         >                 
>         >                 Sent: Sunday, December 13, 2009 6:15 AM 
>         >                 
>         >                 Subject: Strange error in Python code 
>         >                 
>         >                  
>         >                 
>         >                 Hi,
>         >                 I may have gone about this the wrong way. I
>         >                 wanted a simple way to tell if a button has
>         >                 been pressed twice.  My class gives a
>         >                 strange error though.  I wrote a quick bit
>         >                 of code to test it.  It just calls the
>         >                 method twice in succession so it should get
>         >                 1 then 2 for output.  Instead, it says:
>         >                 <bound method countPresses.clickCount of
>         >                 <__main__.countPresses instance at
>         >                 0x7f0a97e78c68>
>         >                 Here's the code:
>         >                 import time
>         >                 class countPresses:
>         >                     def __init__(self, clicks = 1, now =
>         >                 time.time()):
>         >                         pass
>         >                 
>         >                     def clickCount(self):
>         >                         if now + 0.75 >= time.time():
>         >                             self.clicks += 1
>         >                         now = time.time()
>         >                         if self.clicks > 2: self.clicks = 1
>         >                         return self.clicks
>         >                 
>         >                 test = countPresses()
>         >                 print str(test.clickCount)
>         >                 print str(test.clickCount)
>         >                 
>         >                 Thanks
>         >                 Storm
>         >                 
>         >                  
>         >                 
>         >                 
>         >                  
>         >                 -- 
>         >                 Thoughts of a Dragon:
>         >                 http://www.stormdragon.us/
>         >                 What color dragon are you?
>         >                 
> http://quizfarm.com/quizzes/new/alustriel07/what-color-dragon-would-you-be/
>         >                 
>         >                 
>         >                 
>         >                 
>         >                 
>         >                 
>         >                  
>         >                 

Other related posts: