Re: Strange error in Python code
- From: "R Dinger" <rrdinger@xxxxxxxxxx>
- To: <programmingblind@xxxxxxxxxxxxx>
- Date: Sun, 13 Dec 2009 12:03:30 -0800
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: