"method involving two objects" is that possible in Python?

bruno.desthuilliers at gmail.com bruno.desthuilliers at gmail.com
Sat Jun 28 00:15:21 CEST 2008

On 27 juin, 23:41, Kurda Yon <kurda... at yahoo.com> wrote:
> Hi,
> I just started to learn Python. I understood how one can create a
> class and define a method related with that class. According to my
> understanding every call of a methods is related with a specific
> object. For example, we have a method "length", than we call this
> method as the following "x.length()" or "y.length()" or "z.length()",
> where z, y, and z are objects of the class.
> I am wandering if it is possible to create a method which is related
> not with a single object (as in the previous example) but with a pare
> of objects. For example, I want to have a class for vectors, and I
> want to have a methods which calculate a dot product of two vectors.
> One of the possibilities is to use __mul__ and that I calculated dot
> product of "x" and "y" just as "x * y". However, I am wandering if I
> can declare a method in a way that allows me to calculate dot product
> as "dot(x,y)".

No problem. This is actually called a function. It has the same syntax
as a method, except that:

1/ it's defined outside a class
2/ it doesn't take the instance as first argument.

Here's a simple example applied to multiplication:

def multiply(x, y):
  return x * y


More information about the Python-list mailing list