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: