RE: Strange error in Python code
- From: Storm Dragon <stormdragon2976@xxxxxxxxx>
- To: programmingblind@xxxxxxxxxxxxx
- Date: Sun, 13 Dec 2009 12:49:57 -0500
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: