metal wrote:
Consider the following:

########################################
class Parent:
        def some_method(self):
                return Parent(...)
class Child:
        def some_method(self):
                ...
                return Parent.some_method(self)
########################################

Or Simply:

########################################
class Parent:
        def some_method(self):
                return Parent(...)
class Child:
        pass
########################################

Child().some_method() returns a Parent instance.

We can rewrite Parent like this to avoid that

########################################
class Parent:
        def some_method(self):
                return self.__class__(...)
class Child:
        def some_method(self):
                ...
                return Parent.some_method(self)
########################################

But this style makes code full with ugly  self.__class__

Any standard/pythonic way out there?


You need to do a few things here. 1) tell us what version of Python you're targeting, and whether these are old-style or new-style classes you're trying to define.

2) Actually show the class declaration completely. Currently you don't show the (object) or the (Parent) base class declarations.

3) Explain what the desired goal is. Using a phrase like "rewrite Parent like this to avoid that" implies that I already know what particular "that" has you bothered.

4) If you post multiple similar code blocks, label them somehow, so we have a way to refer to them unambiguously.

With my present guesses, the definition of some_method() in the third declaration of Child would seem to be redundant.

DaveA

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

Reply via email to