关于python:使用webpy导致内部服务器错误的IF语句

IF statement causing internal server error with webpy

我有这门课:

1
2
3
4
5
6
7
8
9
10
class View(object):
    def main_page(self, extra_placeholders = None):
        file = '/media/Shared/sites/www/subdomains/pypular/static/layout.tmpl'

        placeholders = { 'site_name' : 'pypular' }

        # If we passed placeholders vars, append them
        if extra_placeholders  != None:
            for k, v in extra_placeholders.iteritems():
                placeholders[k] = v

上面代码中的问题是if语句

如您所见,函数接受一个参数(额外的占位符),它是一个dict。

如果我不向main_page()传递参数,

1
2
if extra_placeholders  == None:
    return 'i executed'

运行良好。然而,

1
2
if extra_placeholders  != None:
    return 'i cause error'

不起作用。它会导致500个内部服务器错误。为什么?


你应该用它来代替吗

1
if !( extra_placeholders  is  None) :

编辑:反映评论:

似乎(谢谢)您也可以使用:

1
 if extra_placeholders  is  not None :

更新:原始链接现在死了,所以这个答案是一个很好的参考:https://stackoverflow.com/a/3289606/30225