PyCharm 3.4.0 Web Help

Basics

The Pull Members Up refactoring allows you to move class members to a superclass .

3.4+

Pull Members Up refactoring can create abstract methods. If a project makes use of the interpreter Python 2.x, then only the instance methods can be abstracted. If a project uses Python 3.x, then any method can be abstracted.

Note that PyCharm automatically adds import statements, required for abstract methods.

Example

Before After
class SuperClass:
    def super_method(self):
        pass¡

class SubClassOne(SuperClass):
    def my_method(self):
        pass
class SuperClass:
    def super_method(self):
        pass¡

    def my_method(self):
        pass¡

class SubClassOne(SuperClass):
    pass
class Bar(object):
    pass¡

class SomeClass (Bar):
    def foo(self):
        pass
            
from abc import abstractmethod
from abc import ABCMeta


class Bar(object, metaclass=ABCMeta):
    @abstractmethod
    def foo(self):
        pass¡


class SomeClass (Bar):
    def foo(self):
        pass
            

Pulling members up

To pull members up
  1. Select the class to be moved to a superclass.
  2. On the main menu or on the context menu of the selection, choose Refactor | Pull Members Up. The Pull Members Up dialog box appears.
  3. Select the destination object (superclass).
  4. In the Members section, select the members you want to move.
  5. To move a method as abstract, select the check box in the column Make abstract next to the method in question.
  6. Click Refactor to pull the selected members to their destination.

See Also

Procedures:

Reference:

Web Resources: