1

私はこのレシピからいくつかのコードに取り組んでいますhttp://code.activestate.com/recipes/280500/
githubユーザーのjochemコードから取得したEPPコード(インポートのみ):Python-EPP(明確にするために、私はやった自分で EPP コードを作成しないでください)

追加した

def do_A_register(self, args):
    i = A_register()
    i.cmdloop()

それは私を導きます:(編集:フォーマットが台無しになりました)

class A_register(cmd.Cmd):
   prompt = "(A register) "
   def do_handles(self, args):
       # Goto sub command
       i = A_registerHandles()
       i.prompt = self.prompt[:-1]+'-> handles $ '
       i.cmdloop()

   def do_domain(self, args):
       # Goto sub command
       pass

   def do_exit(self, args):
       return True

   def do_EOF(self, args):
       return self.do_exit(args)

このサブメニューで終了または crtl-D を実行すると、必要な 1 レベルに戻りますが、ハンドル (レベル 2) まで 1 レベル上がると、レベル 1 (レベル 0 はシェル) に戻ることができません。

第3レベルのコードはこれです

class A_registerHandles(cmd.Cmd):
config = {
    'host': 'epp.a_registar.com',
    'port': 700,
    'user': '<username>',
    'pass': '<password>',
    'handle': '<defaultHandle>',
}

def do_handleAvailable(self, args):
    print "Give handle:",
    handle = raw_input().strip()
    self.epp = EPP(**self.config)
    self.contact = Contact(self.epp, handle)
    canCreate = self.contact.available()
    if bool(canCreate):
        print "Handle %s is free to use." % handle
    else:
        print "Handle %s is in use!" % handle

def do_handleInfo(self, args):
    print "Give handle: ",
    handle = raw_input().strip()
    self.epp = EPP(**self.config)
    self.contact = Contact(self.epp, handle)
    handleInfo = self.contact.info()

def do_exit(self, args):
    return True

def do_EOF(self, args):
    return self.do_exit(args)

ですから、レベル 2 からレベル 1 に戻る方法を知りたいです (またはレベル 3 から 2 または 4 から 3、あなたは私のドリフトをキャッチします)。

レベル 2 からレベル 1 に戻るが、3 から 2 には戻らない作業例を作成しました。長さのため、コードをペーストビンhttp://pastebin.com/qjF4LPXZに追加しました

私が実行しているpythonバージョン:

Python 2.7.3 (デフォルト、2012 年 9 月 26 日 21:51:14) [GCC 4.7.2] on linux2

任意の応答のための Thnx。ポール。

4

0 に答える 0