这个python 代码总是执行到那行就不行了?该怎么解决

这个python 代码总是执行到那行就不行了?
下面的代码总是执行到: def unknown(self, session, cmd): 这行就不行了
无论我在前面加上import cmd 也是不行

请大家帮我看看下面的有哪些问题?谢谢了





from asyncore import dispatcher
from asynchat import async_chat
import socket, asyncore


PORT = 5005
NAME = 'TestChat'
class EndSession(Exception): pass

class CommandHandler:
  """
  类似于标准库中的cmd.Cmd的简单命令处理程序
  """
  def unknown(self, session, cmd):
  '响应未知命令'
  session.push('Unknown command: %s\r\n' % cmd)

  def handle(self, session, line):
  '处理从给定的会话中收到的行'
  if not line.strip():return
  #分离命令
  parts = line.split('',1)
  cmd = parts[0]
  try: line = parts[0].strip()
  except IndexError: line = ''
  #试着查找处理程序
  meth = getattr(self, 'do'+cmd.None)
  try:
  #假定它是可以调用的
  meth(session, line)
  except TypeError:
  #如果不可以调用,此代码响应不知的命令
  self.unknown(session, cmd)

  class Room(CommandHandler):
  """
  包括一个或多个用户的fa型环境,它负责基本的命令处理或广播
  """

  def __init__(self, server):
  self.server = server
  self.sessions = []

  def add(self, session):
  '一个会话(用户)进入房间'
  self.sessions.append(session)

  def remove(self, session):
  '一个会话(用户)已离开房间'
  self.sessions.remove(session)

  def broadcast(self, line):
  '向房间中的所有会话发送一行'
  for session in self.sessions
  session.push(line)

  def do_logout(self, session, liine):
  '响应logout命令'
  raise EndSession


  class LoginRoom(Room):
  """
  为刚刚链接上的用户准备房间
  """
  def add(self, session):
  Room.add(self, session)
  #当用户进入时,问候他或她:
  self.broadcast('Welcome to %s\r\n' % self.server.name)
  def unknown(self, session, cmd):
  # 所有未知命令(除了login或者logout外的一切)
  #会导至一个警告:
  session.push('Please log in\nUse "login <nick>"\r\n')

  def do_login(self, session, line):
  name = line.strip()
  #确保用户输入了名字
  if not name:
  session.push('please enter a name\r\n')
  #确保用户名没有被使用
  elif name in self.server.users:
  session.push('The name "%s" is taken.\r\n' % name)
  session.push('Please try again.\r\n')
  else:
  #名字没有问题,所以存储在会话中,并且将用户移动到主聊天室
  session.name = name
  session.enter(self.server.main_room)


  class ChatRoom(Room):
  """
  为多用户聊天准备的房间
  """
  def add(self, session):
  #告诉所有人有新用户进入了房间
  self.broadcast(session.name + 'has entered the room.\r\n'):
  self.server.users[session.name] = session
  Room.add(self, session)

  def remove(self, session):
  Room.remove(self, session)
  #告诉所有人有用户离开
  self.broadcast(session.name + 'has left the room.\r\n')

  def do_say(self, session, line):
  self.broadcast(session.name + ': ' + line+'\r\n')

  def do_look(self, session, line):
  '处理look命令.该命令用于查看谁在房间内'
  session.push('The following are in this room:\r\n')
  for other in self.sessions:
  session.push(other.name + '\r\n')

  def do_who(self, session, line):
  '处理who命令,该命令用于查看谁登陆了'
  session.push('The following are logged in "\r\n')