define class over 2 files

Jan Kaliszewski zuo at chopin.edu.pl
Tue Aug 18 16:42:46 EDT 2009


18-08-2009 o 06:58:58 Xavier Ho <contact at xavierho.com> wrote:

> On Tue, Aug 18, 2009 at 2:45 PM, naveen <naveen.garg at gmail.com> wrote:
>
>> Is it possible to split up a class definition over multiple files?
>> -
> Answer in short, I don't think so.

Why not?

---------
File a.py:

  class MyClass:
      def foo(self, x):
          return x * 6

---------
File b.py:

  import a
  def bar(self):
      print 'bar'
  def baz(self, a):
      print self.foooo(a)

  # adding methods by hand:
  a.MyClass.bar = bar
  a.MyClass.baz = baz

---------
File c.py

  import a
  def foooo(self, a):
      return a * self.foo(4)
  def baaar(self):
      print self.baz('tralala')
  def bazzz(self):
      print 'bzzzzzzzzzz'

  # adding methods more automaticly:
  for name, obj in globals().values():
      setattr(a.MyClass, name, obj)


>  Now why would you want to do that?

It's a good question. As others said it's very probable that some other
solution would be better (e.g. inheritance).

Cheers,
*j

-- 
Jan Kaliszewski (zuo) <zuo at chopin.edu.pl>



More information about the Python-list mailing list