python terminology on classes

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Tue Jul 27 03:17:27 EDT 2010


Peng Yu a écrit :
> Hi
>> I'm still kind of confused about the terminology on classes in python.
>> Could you please let me know what the equivalent terms for the
> following C++ terms?

C++ and Python having very different semantics and object models, 
there's not necessarily a straight one to one mapping.
>> constructor

Python uses a smalltalk-like 2 phases instanciation / initialisation 
scheme. First the "proper" construction (__new__) is called with the 
class object as first argument, and it must return an unintialised 
instance of the class. Then the initialiser (__init__) is called on this 
instance.
Now one usually only implements the initialiser, as the default 
object.__new__ method does what you would expect, so you'll often see 
people qualifying __init__ as the constructor.
> destructor

Python has no real destructor. You can implement a __del__ method that 
will _eventually_ be called before the instance gets garbage-collected, 
but you'd rather not rely on it. Also, implementing this method will 
prevent cycle detection.
> member function

=> method.
Note that Python's "methods" are really thin wrappers around function 
objects that are attributes of the class object. You'll find more on 
this here:
http://wiki.python.org/moin/FromFunctionToMethod
> member variable

=> Attribute
> virtual member function

All Python's methods are virtual.
> function

=> function !-)
Note that in Python, functions and classes are objects.
> I think that C++ "function" is equivalent to python "function" and C++
> "member function" is equivalent to python "method". But I couldn't
> locate where the original definitions of the corresponding python
> terms in the manual as these term appear many times. Could you please
> point me where to look for the definition of these python
> corresponding terms?

You just cannot directly translate C++ into Python, and while there are 
similarities trying to write C++ in Python will not get you very far.


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /