Pull Members Up
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 Edu 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 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.
Last modified: 30 March 2018