On Oct 15, 2:20 am, aaabb...@hotmail.com wrote: > Test.py > ----------- > #!/usr/bin/python > > from my_lib import my_function > > class MyClass(my_function): # usually class names start capital > > """We know you're not forgetting to document.""" > > def __init__(self, name): > super(MyClass, self).__init__(name) > # self.name = name automatically added from base class > > def test(self): > print "this is a test", self.name > > def __call__(self, name): > > # if you are subclassing something named my_function > # then other Python coders -might- expect the subclass > # to behave like a function. > > print "Now this class acts like a function %s" % name > print "because it has a def __call__(self,...)." > return True # not needed but because functions do stuff > > If __name__ == '__main__': > myclass_instance = MyClass('David') # confusing isn't it to subclass > something called my_function
> ================================================ > my_lib.py > --------- > class my_function(object): > > """This class acts like a function.""" > > def __init__(self, name): > self.name = SpamSpamAndEggs(name) > > def __call__(self): > # do stuff > return self.name.upper() > ... > > -david I editted your code to something closer to what is expected. Not a law but just a recommendation. Also defining a class my_function(..): --might-- be confusing to others as in Python there are things called functions that look like this: def my_function(name): print "Hi %s" % name note the use of "def" and not "class" Of course if you are making classes that represent custom application "functions" verse Python "functions" then yeah, calling your class: class MyFunction(object): ... makes sense I included the __doc__ "You are documenting" stuff because you seem so new. Otherwise when posting here they're not expected to be in these posts. -- http://mail.python.org/mailman/listinfo/python-list