Part 2. Navigate to a declaration, implementation, and test
note
To be able to try the functionality described in this tutorial and follow it step by step, you'll need an example source code. It can be found here.
Place the caret at the method feeds
of the instance of the class Cat
, and press Ctrl0B. PyCharm jumps to the declaration of the method feeds
, which is declared in the class Mammalia
:
Now, place caret at the declaration of the class Mammalia
and try to find out which other classes implement it. To do that, press CtrlAlt0B. You see a rather long list of classes implementing Mammalia
:
Ok, choose whichever implementation you need (for example, Cow
), and press Enter. PyCharm navigates to the selected implementation and places the caret at the class Cow
declaration.
Should you select, for example Carnivorae
, which resides in a separate file, this file would open in a separate editor tab.
Presumably, you have already noticed the pin icon in the upper-right corner of the pop-up window. The same icon appears, for example, in the quick documentation lookup Ctrl0Q. If you click this pin, the whole popup will be "pinned", which in the case of navigation and search means that all the encountered occurrences will be presented in the Find tool window.
Now, let's look at the gutter. You see there a number of icons with the arrows pointing up or down. What does it mean?
If you hover over an icon, PyCharm will show the list of child classes or overriding methods (in case of the down arrow), or the parent classes (in case of the up arrow):
What happens, if you click an icon? If a certain class is subclassed, or a method is overridden in more than one class, PyCharm will suggest to select the desired target from the list:
After that, PyCharm jumps to the selected target, and places the caret at the class (method) declaration. If there is only one superclass/subclass, or method, then such a navigation is done silently.
Note that testing functionality and setting up the test runner are out of scope of this tutorial. For more information, refer to Run tests and Testing frameworks.
Place the caret at the class Cat
in the file Mammalia.py. Then, press CtrlShift0T. You see the suggestion to create a test:
This brief tutorial is over. You've mastered the following features:
Navigating to a declaration.
Navigating to an implementation.
Using the gutter icons or to jump to an implementation or declaration.
Creating a test and jumping to it.
Let's proceed with Part 3 and see how to find usages of a class or symbol.
Thanks for your feedback!