This works perfectly well.
class Person:
  def __init__(self,name):
      self.name = name
  def print_name(self):
      print self.name
  def __and__(self,other):
      print "self.name : ",self.name
      print "other.name : ",other.name
      self.name = '%s AND %s' %(self.name,other.name)
      return self.name
p = Person("John")
q = Person("George")

print Person.__and__(p,q)


On 30 May 2007 22:11:45 -0700, theju <[EMAIL PROTECTED]> wrote:
Hello all,
I've two objects (both instances of a class called Person) and I want
to use the __and__ method and print the combined attributes of the two
instances.

To be precise, here is my code....

class Person:
    def __init__(self,name):
        self.name = name
    def print_name(self):
        print self.name
    def __and__(self,other):
        self.name = '%s AND %s' %(self.name,other.name)
        return self.name

p = Person("John")
q = Person("George")

r = p and q
print r.print_name()

Output:
-----------
George
None

I've also tried this:
class Person:
    def __init__(self,name):
        self.name = name
    def print_name(self):
        print self.name
    def __and__(self,other):
        a = Person()
        a.name = '%s AND %s' %(self.name,other.name)
        return a

p = Person("John")
q = Person("George")

r = p and q
print r.print_name()

Output:
-----------
George
None

The above output in both cases is giving me a doubt if __and__ method
is over-ridable or not?

The output that I am accepting is:
John AND George

What are the changes if to be made?

Thanking You
Thejaswi Puthraya
http://thejuhyd.blogspot.com

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



--
Regards--
Rishi Pathak
National PARAM Supercomputing Facility
Center for Development of Advanced Computing(C-DAC)
Pune University Campus,Ganesh Khind Road
Pune-Maharastra
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to