0

私は以下の定義を持っています.ITEMはメニューから来ています. ただし、コマンドの形式が var と command のように異なるため、16 進数のエンコードに問題があります。bottomtext.insert(INSERT, var + process) を実行するにはどうすればよいですか? 現時点では、testingtext.encode("hex") がbottomtextに挿入されるだけです。私は exec を見ましたが、 exec は必要ないという一般的な見解があるようですか? Base64 + URL エンコーディングは問題なく動作します。何か助けてください。

ありがとうございました

def gui(item):
    def default_encode(s):
        s.encode('oops')
        print s.encode

    encodehexstring = '.encode("hex")'
    mapping = {"encode_b64": base64.encodestring,"encode_url": urllib.quote_plus,"encode_hex": encodehexstring}
    process = mapping.get(item, default_encode)

    def getText():
    #clear right text field
        bottomtext.delete(1.0, END)
    #var equals whats in left
        var = middletext.get(1.0, 'end-1c')
    #encode it

    #insert encoded var in right
        if process == encodehexstring:
            bottomtext.insert(INSERT, var + process)
        else:
            bottomtext.insert(INSERT, process(var))
4

1 に答える 1

1
mapping = {'encode_b64': base64.encodestring, 'encode_url': urllib.quote_plus, 'encode_hex': lambda s: s.encode('hex')}

編集:またはラムダなし(まったく同じことを意味し、書くだけです):

def hexencode(s):
   return s.encode("hex")
mapping = {'encode_b64': base64.encodestring, 'encode_url': urllib.quote_plus, 'encode_hex': hexencode}
于 2012-07-23T10:13:47.820 に答える