【问题标题】:How do I restart the function?如何重新启动该功能?
【发布时间】:2026-01-01 22:25:02
【问题描述】:

每次单击按钮并执行函数时,我都会尝试打印随机整数,但是,除非我重新启动程序,否则我只会得到相同的结果。

这是我的代码:

num1= randint(0,9)

testbtn_txt = tk.StringVar()
testbtn = tk.Button(root, textvariable=testbtn_txt, command=lambda:testfunc(), font="Arial", bg="#808080", fg="white", height=1, width=10)
testbtn_txt.set("Test")
testbtn.grid(row=10, column=0, columnspan=2, pady=5, padx=5)

def testfunc():
    print(num1)

那么我该怎么做呢?

【问题讨论】:

    标签: python random


    【解决方案1】:

    将随机数生成移到函数中。 randint 并不神奇 - 您必须再次调用它才能获得新的随机数。

    def testfunc():
        num1 = randint(0,9)
        print(num1)
    

    【讨论】:

      【解决方案2】:

      num1 被初始化为一个随机值,但该值会在程序运行期间保留。相反,您可以将随机化移动到函数本身:

      def testfunc():
          num1 = randint(0,9)
          print(num1)
      

      或者更简洁:

      def testfunc():
          print(randint(0,9))
      

      【讨论】:

        【解决方案3】:

        这样做:

        def testfunc(): print(randint(0,9))

        def getnum(): return randint(0,9) def testfunc(): print(getnum())

        【讨论】: