On 1/27/15 7:17 PM, Mario Figueiredo wrote:
In article <mailman.18191.1422400930.18130.python-l...@python.org>,
n...@nedbatchelder.com says...

A common mistake is to believe that "OOP" is a well-defined term.  It's
not it's a collection of ideas that are expressed slightly differently
in each language.

A common mistake is thinking just because OOP has different
implementations, it doesn't have a cohesive set of well described rules
and its own well defined terminology.

I know you think that it has well described rules and terminology. But take a look at this discussion, and maybe realize that the terms are not as well-defined, or certainly not as widely accepted as you think.

Do you have a reference that defines these terms?


I don't know what a "not fully realized object" is.

A fully realized object, in an object oriented paradigm, is an object
containing or pointing to data and the methods to act on that data. It's
an instance of a class.

A *not* fully realized object is possible in Python, since Classes are
first-class objects, despite not being able to participate in OOP.

What does "participate in OOP" mean?

Means the object is capable of participating in inheritance and/or
polymorphism. An instance of an object is capable of doing so, per its
class definitions. Whereas a Python class object is not.

     >>> class Master:
             def func(self):
                 pass

     >>> class Sub(Master):
             pass

     >>> Sub.func()
     TypeError: func() missing 1 required positional argument: 'self'


But somehow I think you knew the answer to all these questions and were
instead being snarky.

I am not being snarky, I'm trying to understand where our mutual incomprehension lies.


--
Ned Batchelder, http://nedbatchelder.com

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

Reply via email to