Ich verwende meine eigenen Dekoratoren an vielen Stellen in meinem Code (z. B. für die Protokollierung usw.). Gibt es eine Möglichkeit, dem Debugger zu sagen, dass er den Körper des Dekorators überspringt und direkt in die dekorierte Funktion eintritt?Tell PyCharm Debugger nicht in Dekoratoren
Antwort
In den Einstellungen können Sie festlegen, auf welche Python-Skripte der Debugger nicht zugreifen soll.
Einstellungen -> Build, Ausführung -> Debugger -> Stepping -> Python (sollte ganz unten sein).
Aktivieren Sie einfach das Kontrollkästchen "Nicht in Skripts einsteigen" und geben Sie die gewünschten Skripte an.
Ich fürchte, das funktioniert nicht für mich. Ich nehme an, das 'Skript' bedeutet den Namen der Datei, in die es nicht treten sollte. Aber wenn ich in meinem Debugger 'Step in' drücke, geht es in die Datei, die das Decorator-Definitionsereignis enthält, obwohl ich diese Datei als die zu überspringende Datei aufgelistet habe. –
Dies ist genau das Problem, mit dem ich konfrontiert war, versuchen Sie, das Muster für den Dateinamen zu ändern, mein ursprünglicher Dateiname war debug_utils.py und das Muster, das ich wählte, war \ * debug_utils \ * (überprüfen Sie das Bild) –
- 1. pycharm Debugger nicht verbinden: KeyboardInterrupt
- 2. Debugger nicht funktioniert auf einmal in PyCharm
- 3. PyCharm Django Javascript Debugger
- 4. PyCharm Debugger stoppt nicht an Haltepunkten
- 5. Scapy Modul blockiert PyCharm Debugger
- 6. Pycharm Debugger, Ansicht als Array-Option
- 7. PyCharm Debugger schlägt mit AttributeError fehl
- 8. PyCharm Debugger-Linien sind nicht mehr synchron mit der Realität
- 9. Pycharm Debugger zeigt die Meldung: "Variablen sind nicht verfügbar"
- 10. Dataframe nicht in Pycharm
- 11. Dekoratoren und in Klasse
- 12. Verschachtelungsdeskriptoren/-dekoratoren in Python
- 13. Machen ECMAScript-Dekoratoren TypScript-Dekoratoren überflüssig?
- 14. Pycharm run "Debugger Beschleunigungen mit Cython" auf Docker gehostete App
- 15. Debug Django-App im Docker-Image ausgeführt, mit Pycharm-Debugger
- 16. Wo können Skripte an einem PyCharm Debugger Haltepunkt ausgeführt werden?
- 17. Datenzugriff: Ausnahme zu 'Tell, frag nicht'?
- 18. Python-ähnliche Dekoratoren in Java?
- 19. Implementieren Methode Dekoratoren in C#
- 20. Dekoratoren auf Funktionen
- 21. Python-Dekoratoren und Klassenvererbung
- 22. Nicht verwendete Variablen in PyCharm
- 23. PhantomJS() läuft nicht in PyCharm
- 24. Tell Netbeans SVN zu vergessen
- 25. Composable C++ - Funktions-Dekoratoren
- 26. Dekoratoren und virtuelle Methoden
- 27. Experimental Dekoratoren Warnung VSCODE
- 28. Python Klasse Eigenschaft Dekoratoren funktioniert nicht
- 29. PyCharm Debugger funktioniert auf Ubuntu aber nicht unter Windows für identischen Code
- 30. Python-like C++ - Dekoratoren
Legen Bruchstellen in den Dekorateur nicht oder Run verwenden – mbatchkarov
zum Cursor Ich glaube, ich kann es nicht erklären war klar. Angenommen, ich debugge in der Funktion 'A()', die die Funktion 'B()' aufruft, die dekoriert ist. Wenn ich "in die Funktion gehe" auf der Zeile, die 'B()' nennt, komme ich nicht in 'B()', aber ich steige in den Dekorateur (an dem ich definitiv nicht interessiert bin - es macht nur ein paar Logins in meinem Fall). Ich war nur neugierig, wenn ich diesen Schritt irgendwie überspringen und direkt in 'B()' gehen könnte. –
Ich glaube nicht, dass Sie das tatsächlich mit der Step-Into-Methode tun können. Soweit es Python betrifft, hat es keine Ahnung, dass Ihre Funktion dekoriert ist. Die '@ decorator'-Syntax ist buchstäblich die gleiche Sache wie 'my_func = decorator (my_func)', und so wird der Debugger tatsächlich in den 'decorator()'' Code einsteigen, da dies aufgerufen wird. Was Sie * tun * können, ist, einen Haltepunkt innerhalb der dekorierten Funktion zu platzieren; oder treten Sie einfach in den Dekorateur und * dann * treten Sie in die dekorierte Funktion ('B()'), sobald Sie im Dekorateur sind. – YellowShark