V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zeroDev
V2EX  ›  问与答

问一个 Python 中 Class 变量传参的问题

  •  1
     
  •   zeroDev · 2018-08-16 22:51:34 +08:00 · 1899 次点击
    这是一个创建于 2051 天前的主题,其中的信息可能已经有所发展或是发生改变。

    import urwid

    class QuestionBox(input_text, urwid.Filler):
        def keypress(self, size, key):
            if key != 'enter':
                return super(QuestionBox, self).keypress(size, key)
            else:
                print(input_box_start)
                raise urwid.ExitMainLoop()

    input_box_start = urwid.Edit()
    fill = QuestionBox(input_box_start)
    loop = urwid.MainLoop(fill)
    loop.run()
    print(input_box_start)

    请问这样一个程序,如何才能吧 input_box_start 传出来
    谢谢各位:)

    第 1 条附言  ·  2018-08-16 23:48:34 +08:00
    class QuestionBox(input_text, urwid.Filler):
    这里改成
    class QuestionBox(urwid.Filler):
    手误打错了
    7 条回复    2018-08-17 01:21:57 +08:00
    Yourshell
        1
    Yourshell  
       2018-08-16 23:12:45 +08:00 via iPhone
    没看懂问的什么,你是想打印 input_box_start 吗,实现__str__方法就行了
    zeroDev
        2
    zeroDev  
    OP
       2018-08-16 23:22:05 +08:00 via Android
    @Yourshell
    就是怎么把类里面的参数传出来用
    ToT
        3
    ToT  
       2018-08-16 23:28:48 +08:00
    input_box_start 这里是 urwid.Edit() obj 吧?那你 print 是不是应该是 print(input_text).

    传个 list 的 reference 进去, 或者建一个 property under QuestionBox
    Yourshell
        4
    Yourshell  
       2018-08-16 23:42:07 +08:00 via iPhone
    zeroDev
        5
    zeroDev  
    OP
       2018-08-16 23:46:46 +08:00
    @Yourshell 翻过了,不是库的问题。
    纠结了晚上,不是随意提问
    zeroDev
        6
    zeroDev  
    OP
       2018-08-17 00:35:52 +08:00
    ToT
        7
    ToT  
       2018-08-17 01:21:57 +08:00
    @zeroDev global keyword 感觉以后会有坑。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2871 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:08 · PVG 21:08 · LAX 06:08 · JFK 09:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.