variable vs. object

Chris Angelico rosuav at gmail.com
Mon Nov 30 03:19:18 EST 2015


On Mon, Nov 30, 2015 at 1:06 PM, fl <rxjwg98 at gmail.com> wrote:
> For example,
>
> a=10
>
> 'a' is an integer. Is it an object too?

Other people have explained the difference between the name "a" and
the object it's bound to... but to the extent that "a" is an integer,
yes it most definitely is an object. To be specific, the integer 10 is
an object, as you can see thus:

>>> a = 10
>>> a.to_bytes(4, "big")
b'\x00\x00\x00\n'
>>> (a*12+8).to_bytes(4,"big")
b'\x00\x00\x00\x80'

Every expression [1] in Python has a value which is some sort of
object, so you can do method calls on anything at all. Sometimes this
looks a bit odd, but it does work:

>>> 7.25.as_integer_ratio()
(29, 4)

The floating-point number 7.25 is represented in Python as a float
object, and float objects have methods, same as all objects do. In
this case, I've asked Python to tell me what this number would be as a
fraction (ratio) of integers - 29/4 is equal to 7.25, so that's what
it returns.

So yes! It is an object. Everything is an object!

ChrisA

[1] To silence the nitpickers: An expression could raise an exception,
or not terminate at all. As Grandpa said in The Princess Bride, you're
very clever, now shut up.



More information about the Python-list mailing list