On 05/22/2015 01:34 PM, Marko Rauhamaa wrote:
Ian Kelly <ian.g.ke...@gmail.com>:

An "object" in Javascript is basically just a collection of
properties. For example:

js> typeof([1, 2, 3])
"object"
js> typeof({a: 1, b: 2, c: 3})
"object"

Here's what happens when you try to access a property on null:

js> null.foo
typein:18:0 TypeError: null has no properties

That's not all that different from Python, where object() returns a
fresh instance at each invocation. However:

    >>> object().x = 3
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'object' object has no attribute 'x'

Why are object instances immutable in Python?

# psuedo-code

class object:
    __slots__ = ()

class bad_object:
    "__slots__ not specified, so automatically gets a __dict__"

class tuple(...) <- object or bad_object?  hint: the clue is in the name ;)
    __slots__ = ()

If tuple is based on bad_object, it will get a __dict__ and be very-mutable.

In order to have slightly-mutable or immutable objects, the base class has to 
not have a __dict__, so object does not.

Mind you, I don't know if that's the reason why it was decided to be like that, 
or just a nice consequence of the choice to do it that way.

--
~Ethan~
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to