以下是Validator的代码,为什么要打印None None
?相同的代码位于django 1.6。
In [1]: %paste
class SVNPathValidator(object):
message = 'Enter a valid value.'
code = 'invalid'
def __init__(self, verify_existed=True, message=None, code=None, path_type=0, rev=None):
'''
file_type:
0 file
1 dir
'''
if message is None:
self.message = message
if code is None:
self.code = code
print self.message, self.code
self.path_type = path_type
self.rev = rev
def __call__(self, value):
print self.message, self.code
## -- End pasted text --
In [2]: validator=SVNPathValidator()
None None
In [3]: validator('svn://10.10.10.10/repo')
None None
答案 0 :(得分:0)
我不确定你为什么认为它会做任何其他事情。在实例化对象时,您不会传递消息或代码,也不会在__call__
方法中设置它们。
代码不与您链接到的Django代码相同。相反,所有Django版本都与您的代码相反:if self.message is not None
等。
答案 1 :(得分:0)
你的代码的功能是将这两个变量设置为None - 尽管我认为它不是故意的。
def __init__(self, verify_existed=True, message=None, code=None, path_type=0, rev=None):
if message is None:
self.message = message
if code is None:
self.code = code
首先检查参数是否为None
,如果是,则将它们指定为实例变量。 <{1}}或self.message
无处分配给其他任何内容。