Inheritance would be the more "software engineering politically correct scholastic" way of doing this.
However, this is how you accomplish this the way you describe. def hello(): print "hello world" def hello_vars(*args): print " ".join(a for a in args) class A(object): pass class B(object): def __init__(self): self.usethis = hello_vars >>>myobj = A() >>>myobj.say_hello = hello >>>myobj.print_args = hello_vars >>>myobj.say_hello() hello world >>>myobj.hello_vars("hi", "from", "python") hi from python >>>anewobj = B() >>>anewobj.usethis("hi", "from", "B") hi from B -Thadeus On Wed, Oct 14, 2009 at 4:27 PM, Kris Schnee <ksch...@xepher.net> wrote: > This is more of a general Python question. > > I've finished testing a class with some functions I like. I want to use > those functions in a new class, but not to use the module I just built. > (Because I might end up with several such classes.) So I'm thinking of doing > this: > > -Make a new module. > -Give it a class that starts with no functions defined. > -Write a module containing the tested functions without their being part of > a class. Eg. > > def DoSomething(self,**options): > pass > > -Import the tested functions as a module called "spam" > -Have the new module's class manually say, "self.DoSomething = > spam.DoSomething". > > Seems cumbersome, doesn't it? I'm basically trying to give my new class > access to the neat functions while putting them into a separate module, so > that the main module isn't cluttered by them. Or should I rely on a linear > chain of inheritance, so that FancyClass is a subclass of BasicClass from > another module? >