/mypath/test.pyPython sys._getframe
import sys
def test():
frame = sys._getframe(0)
f = frame.f_code.co_filename
print('f:', f)
print('co_filename1:', frame.f_code.co_filename)
while frame.f_code.co_filename == f:
frame = frame.f_back
print('co_filename2:', frame.f_code.co_filename)
test()
laufen sie und bekommen:
f: /mypath/test.py
co_filename1: /mypath/test.py
Traceback (most recent call last):
File "/mypath/test.py", line 13, in <module>
test()
File "/mypath/test.py", line 9, in test
while frame.f_code.co_filename == f:
AttributeError: 'NoneType' object has no attribute 'f_code'
Warum in while-Schleife ein NoneType Fehler frame.f_code erhalten, aber wie gewohnt ausdrucken Dank ~
Codierungsfehler. Wenn sich * alle * Stapelrahmen in der aktuellen Datei befinden (z. B. wenn Sie die Datei direkt ausführen), fällt die Schleife über den Rahmen des Bildstapels. An diesem Punkt "frame == None". – dhke