在这个简单的Python代码中,如果a
的值从0
更改,则会有NameError
显示b
未定义。但是,如果永远不执行else
子句,则错误仍然隐藏。我怎样才能发现这类错误?
a=0
if a==0 :
print "hello"
else :
print b
答案 0 :(得分:4)
pylint能够在不执行它的情况下在python代码中找到许多常见(而不是那么常见)错误,例子输出示例:
C: 1, 0: Exactly one space required around assignment
a=0
^ (bad-whitespace)
C: 2, 0: Exactly one space required around comparison
if a==0 :
^^ (bad-whitespace)
C: 2, 0: No space allowed before :
if a==0 :
^ (bad-whitespace)
C: 4, 0: No space allowed before :
else :
^ (bad-whitespace)
C: 1, 0: Missing module docstring (missing-docstring)
C: 1, 0: Invalid constant name "a" (invalid-name)
E: 5,10: Undefined variable 'b' (undefined-variable)
您对此感兴趣的一行是:E: 5,10: Undefined variable 'b' (undefined-variable)
答案 1 :(得分:2)
有两种方法可以实现这一目标:
在try/except
块中包含此类语句。例如:
Exception
使用也可以使用traceback
获取与提出的from keras.models import Sequential
from keras.layers import Dense, Activation, Convolution2D, Flatten, MaxPooling2D, Dropout
import numpy
def get_model():
# implement your model here
model = Sequential()
model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(48, 48, 1)))
model.add(Flatten())
model.add(Dense(7))
model.add(Activation('softmax'))
optimization_method = 'sgd'
model.compile(loss='categorical_crossentropy', optimizer=optimization_method, metrics=['accuracy'])
return model
相关的所有信息。
如果您想在函数范围内使用此行为,请创建一个decorator
并将该装饰器与您需要此行为的函数一起使用。