Pull Members Up, Push Members Down
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.
The Push Members Down refactoring helps clean up the class hierarchy by moving class members to a subclass. The members are then relocated into the direct subclasses only.
Pulling members up
Select the class to be moved to a superclass.
On the main menu or on the context menu, 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 checkbox in the column Make abstract next to the method in question.
Click Refactor to pull the selected members to their destination.
Pushing members down
In the editor, open the class whose members you need to push down.
On the main menu or on the context menu, choose Push Members Down dialog box displays the list of members to be pushed down..
- In the Members to be pushed down area, select the members you want to move. Note that the member at caret is already selected.
If pushing a member might cause problems, you will be notified with red highlighting. It means that, if the situation is unattended, an error will emerge after refactoring. PyCharm prompts you with a Problems Detected dialog, where you can opt to ignore or fix the problem.
Preview and apply changes.