0

私のクラスには次の関数があります。

 def removeUserFromSessionDatabase(self, user):
      if user in self.users:
         for k in self.users.keys():
            if k == user:
               del self.users[k]
               print("Removed")

            else:
               print("user does not exist")
      else:
         print "soemthing"

今、私はいつもこの最後else にメッセージでエラーを受け取ります:SyntaxError: invalid syntax それが機能するはずです。ここではusersは辞書であり、他の方法はありません。なぜこの構文エラーが発生するのですか?

4

2 に答える 2

3

インデントが正しくない可能性があります。おそらくタブが原因です。実行python -tt scriptname.pyして確認します。

それ以外の場合、指定したコードではなく、この特定の例外を引き起こす構文エラーはコードにありません。

于 2012-09-08T20:21:22.893 に答える
3

あなたはこれをたくさん単純化することができます

def removeUserFromSessionDatabase(self, user):
      return self.users.pop(user,False)

また

def removeUserFromSessionDatabase(self, user):
      if self.users.pop(user,False):
         print "%s was deleted from group"
      else:
         print "%s is not in group"

また

def removeUserFromSessionDatabase(self, user):
      userData = self.users.pop(user,False):
      if userData: 
          #do Something
      else:
          #do something else

または最後に

def removeUserFromSessionDatabase(self, user):
      try:userData = self.users.pop(user):
      except KeyError:
          #user does not exist in dict
          pass
      print "Deleted {0}:{1} From List".format((user,userData))

どうやら(デンランごとに、私はそれを信じています) del使用しても問題ありません

def removeUserFromSessionDatabase(self, user):
      try:
         del self.users[user]
         print "Removed user"
      except KeyError:  
         print "User does not exist" 


def alt_removeUserFromSessionDatabase(self, user):
      if user in self.users
         del self.users[user]
         print "Removed user"
      else:  
         print "User does not exist" 
于 2012-09-08T20:22:54.547 に答える