2009-09-07 5 views
1

J'ai cette classe:instruction IF provoquant une erreur interne du serveur avec webpy

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 

Mon problème dans le code ci-dessus est l'instruction if

Comme vous pouvez le voir, la fonction prend un argument (extra_placeholders) ce qui est un dict.

Si je ne passe pas un paramètre à main_page(),

if extra_placeholders == None: 
    return 'i executed' 

fonctionne bien. cependant,

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

ne fonctionne pas. il provoque une erreur de serveur interne 500. Pourquoi?

Répondre

1

devrait vous utiliser à la place

if !(extra_placeholders is None) : 

Edit: Pour tenir compte de commentaire:

Il semble (merci) que vous pouvez également utiliser:

if extra_placeholders is not None : 

Mise à jour: Le lien orginal est maintenant mort donc cette réponse SO est une bonne référence: https://stackoverflow.com/a/3289606/30225

+0

Merci. "is not None" semble l'avoir fait aussi. – sqram

+0

Et merci pour ce lien. vraiment clarifié certaines choses! – sqram

+0

Ceci est un bon exemple pourquoi les liens externes peuvent être utiles, mais les informations les plus pertinentes doivent être copiées dans la réponse ... parce que le lien n'est plus disponible. – kmarsh