Everything is an object in python - object class and type class
BartC
bc at freeuk.com
Wed Jun 3 07:08:26 EDT 2015
On 03/06/2015 11:38, Chris Angelico wrote:
> On Wed, Jun 3, 2015 at 8:20 PM, BartC <bc at freeuk.com> wrote:
>> I have a lot of trouble with this stuff too, as my ideas are decidedly
>> old-fashioned. (Also I'm developing a language with some OO aspects without
>> ever having used OO!)
>>
>> But, it is mostly just jargon. If you go back to using 'variable' and
>> 'type', then it becomes a bit easier:
>>
>> * A variable is an instance of some type.
>>
>> And, that's pretty much it!
>
> If I have a list called "stuff" with three elements in it, is
> "stuff[1]" a variable? What if I return that list from a function
> called get_stuff()? Is get_stuff()[1] a variable? Because in Python,
> get_stuff()[1] is certainly going to be an object.
Come on, we're trying to keep this simple.
To 'variable' and 'type', you might need to add 'value' to make it more
complete. An old-fashioned program will be moving values around and
constructing new ones. Some of them will be loaded from variables, and
some might end up being stored in variables.
(With the obligatory twist in Python that variable names are not
directly attached to their values, but via a 'string'. I can introduce a
new term for what /is/ actually stored /with/ the variable, as it's got
to be something unless Python works by magic, but I don't want to do that.)
You might call such a value an 'object'. The trouble is, Python also
uses 'object' to mean the base class of all classes. And it seems to use
it in a more abstract sense as well to mean pretty much everything.
While other languages, such as C, use object in yet another way.
Which is where the term breaks down as it no longer helps in
understanding. It's become meaningless.
--
Bartc
More information about the Python-list
mailing list