Basics
The Pull Members Up refactoring allows you to move class members to a superclass .
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
- Select the class to be moved to a superclass.
- On the main menu or on the context menu of the selection, choose Pull Members Up dialog box appears. . The
- Select the destination object (superclass).
- In the Members section, select the members you want to move.
- To move a method as abstract, select the check box in the column Make abstract next to the method in question.
- Click Refactor to pull the selected members to their destination.