问题描述
简单代码:
import scipy as sp
p1=sp.special.expit(Phi@w)
结果:
def func1(val):
if isinstance(val,int) is True:
print('value:',val)
else:
raise TypeError('must be integer')
def func2():
func1(1)
func1('1')
func2()
最后一个堆栈是 value: 1
Traceback (most recent call last):
File "c:/Users/sss/etc/exceptionTest/exceptionTest.py",line 17,in <module>
func2()
File "c:/Users/sss/etc/exceptionTest/exceptionTest.py",line 14,in func2
func1('1')
File "c:/Users/sss/etc/exceptionTest/exceptionTest.py",line 9,in func1
raise TypeError('must be integer')
TypeError: must be integer
代码所在的位置,这不是必需的。我怎样才能删除它?
解决方法
您可以将 sys.tracebacklimit
设置为 Startup: lein update-in :dependencies conj \[acyclic/squiggly-clojure\ \"0.1.9-SNAPSHOT\"\]
-- update-in :dependencies conj \[nrepl/nrepl\ \"0.8.3\"\]
-- update-in :plugins conj \[refactor-nrepl\ \"2.5.0\"\]
-- update-in :plugins conj \[cider/cider-nrepl\ \"0.25.8\"\]
-- repl :headless :host localhost
:
-1
输出:
import sys
sys.tracebacklimit = -1
def func1(val):
if isinstance(val,int):
print('value:',val)
else:
raise TypeError('must be integer')
def func2():
func1(1)
func1('1')
func2()
或者如果您仍然希望能够看到错误的来源,请将 value: 1
Traceback (most recent call last):
** IDLE Internal Exception:
TypeError: must be integer
设置为 sys.tracebacklimit
:
3
请注意,value: 1
Traceback (most recent call last):
File "C:/Users/wil/Desktop/dsvcax.py",line 14,in <module>
func2()
File "C:/Users/wil/Desktop/dsvcax.py",line 12,in func2
func1('1')
TypeError: must be integer
可以缩写为 if isinstance(val,int) is True:
。