[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Re: Pygame not handling keyboard tracking correctly



ok. This confusion happens when one ASSUMES that eqality is same, correct? :)


On Mon, Jun 23, 2014 at 1:15 PM, FÃlÃp AndrÃs <fulibacsi@xxxxxxxxx> wrote:
@diliup:

It's because python's is operator checks if the two item is the same, and == checks for equality. Also python stores an object for the numbers from -5 to 255 to speed up things.
Check it:
a = 255
b = 255
print a is b
print id(a), id(b)
a = 256
b = 256
print a is b
print id(a), id(b)

Hope it clears up some things!


2014-06-23 9:37 GMT+02:00 diliup gabadamudalige <diliupg@xxxxxxxxx>:

ok
look at this!
a = 100
b = 100
a == b
True
a is b
True
a = 1000
b = 1000
a is b
False
a == b
True

what on earth is this? what is this logic?


On Mon, Jun 23, 2014 at 1:03 PM, Sam Bull <sam.hacking@xxxxxxxx> wrote:
On lun, 2014-06-23 at 11:45 +0530, diliup gabadamudalige wrote:
> I called event.clear() cause it says in the Pygame documentation that
> if you leave unused events on the buffer that eventually it may fill
> up and cause the program to crash.

Yes, but if you are getting everything from the buffer using event.get()
or whatever every frame, then it's not going to fill up, as these
returned events are removed from the queue. As long as you are reading
the whole buffer, say every 100ms, you're going to be fine. Otherwise,
you're just throwing away the events that have arrived between the
event.get() and event.clear() calls.

>
> if x is True:
> is not correct
>
> if x == True
> is correct?

This obviously depends on what x is.

So, if we write:
    "foo" is True

We can clearly see these are not the same object. One is a string, and
the other is the True object. But, if we do:
    "foo" == True

Then, we are asking if the string evaluates to a True value, when
treated as a boolean. And any non-empty string will be considered True,
and so it is equal to True (but not the same object).


Futhermore, what Greg was saying is that some objects can be of the same
value and still not be the same object. Thus:
    a = 4040
    b = 4040
    a == b Â# True
    a is b Â# Could be False

    b = a Â# b now references the a object itself
    a is b Â# Always True

This becomes more obvious if we were to use mutable types:
    a = [2]
    b = [2]
    # Obviously, these are two distinct objects
    a == b Â# True
    a is b Â# False
    # Changing one, would not change the other, as they are
    different
    # objects.
    a.append(3)
    a == b Â# False


On an interesting sidenote, it is not even required that an object is
equal to itself:
    a = float("NaN")
    a == a Â# False



--
Diliup Gabadamudalige

http://www.diliupg.com
http://soft.diliupg.com/

**********************************************************************************************
This e-mail is confidential. It may also be legally privileged. If you are not the intended recipient or have received it in error, please delete it and all copies from your system and notify the sender immediately by return e-mail. Any unauthorized reading, reproducing, printing or further dissemination of this e-mail or its contents is strictly prohibited and may be unlawful. Internet communications cannot be guaranteed to be timely, secure, error or virus-free. The sender does not accept liability for any errors or omissions.
**********************************************************************************************





--
Diliup Gabadamudalige

http://www.diliupg.com
http://soft.diliupg.com/

**********************************************************************************************
This e-mail is confidential. It may also be legally privileged. If you are not the intended recipient or have received it in error, please delete it and all copies from your system and notify the sender immediately by return e-mail. Any unauthorized reading, reproducing, printing or further dissemination of this e-mail or its contents is strictly prohibited and may be unlawful. Internet communications cannot be guaranteed to be timely, secure, error or virus-free. The sender does not accept liability for any errors or omissions.
**********************************************************************************************