Extract Method
Basics
When the Extract Method refactoring is invoked , PyCharm analyses the selected block of code and detects variables that are the input for the selected code fragment and the variables that are output for it.
The detected output variable is used as a return value for the extracted function.
Examples
JavaScript example
Before  After 

function multiplication(a,b) {
c = a + b;
d = c * c;
return d;
}

function sum(a,b);
return a + b;
function multiplication(a,b) {
c = sum(a,b);
d = c * c;
return d;
}

Before  After 

import math
class Solver:
def demo(self):
a = 3
b = 25
c = 46
root1 = (b + math.return_type_of_sqrt(b**2  4*a*c)) / (2*a)
root2 = (b  math.return_type_of_sqrt(b**2  4*a*c)) / (2*a)
print(root1, root2)
Solver().demo()

import math
class Solver:
def eval_roots(self, a, b, c):
d = b**2  4*a*c
root1 = (b + math.sqrt(d)) / (2*a)
root2 = (b  math.sqrt(d)) / (2*a)
return root1, root2
def demo(self):
a = 3
b = 25
c = 52
root1, root2 = self.eval_roots(a, b, c)
print(root1, root2)
Solver().demo()

Extracting a method
To extract a method, follow these steps
 In the editor, select a block of code to be transformed into a method or a function.
 On the main menu or on the context menu of the selection, choose or press Ctrl+Alt+M.
 In the Extract Method dialog box that opens, specify the name of the new function.
 In the Parameters area, do the following:
 Specify the variables to be passed as method parameters, by selecting/clearing the corresponding check boxes.
 Rename the desired parameters, by doubleclicking the corresponding parameter lines and entering new names.
 Check the result in the
Signature Preview pane and click
OK
to create the function.
The selected code fragment will be replaced with a function call.
Processing duplicates
If duplicate code fragments are encountered, PyCharm suggests to replace them with the calls to the extracted method:
See Also
Reference:
Web Resources:
Last modified: 15 May 2015