【发布时间】:2011-02-01 07:43:37
【问题描述】:
在课堂上进行错误检查的正确方法是什么?引发异常?设置一个包含所有错误的实例变量字典“错误”并返回它?
从一个类中打印错误是不是很糟糕? 如果我提出异常,是否必须返回 False?
只是想确保我做的事情是正确的。下面是一些示例代码:
@property
def password(self):
return self._password
@password.setter
def password(self,password):
# Check that password has been completed
try:
# Check that password has a length of 6 characters
if (len(password) < 6):
raise NameError('Your password must be greater \
than 6 characters')
except NameError:
print 'Please choose a password'
return False
except TypeError:
print 'Please choose a password'
return False
#Set the password
self._password = password
#Encrypt the password
password_md5 = md5.new()
password_md5.update(password)
self._password_md5 = password_md5.hexdigest()
【问题讨论】:
-
该代码中有太多名为
password的东西。 (第一个函数、第二个函数和第二个函数的参数。)pyflakes 将成为你的朋友。 -
@keturn:这是
property()函数的文档中显示的模式。看看code example in the docs that uses.setterdecorator。在setter方法password里面是一个局部变量(参数)。其他名称位于不同的命名空间中(它们属于该类)。
标签: python error-handling