更新Python中按钮命令中的变量

发布于 2025-01-11 10:59:22 字数 551 浏览 1 评论 0原文

我有一个更简单的问题。然而,我无法理解它。

我基本上有两个功能的类。 在第一个函数中,当按下按钮时,会创建一个针对第二个函数的按钮。

def function1(self):
   self.data = 100

   button = Button(Frame, text='I am a Button!', bg='#ffffff', command=lambda: self.function2(someVariable)).grid(row=3, column=1, sticky=W)

   self.data = 200

在创建按钮之前,会创建一个变量,并在创建后更新该变量。

在第二个函数中有:

def function2(self, someVariable):
   print(self.data*int(someVariable))

现在的问题是打印的计算中包含了错误的数据(=100)。 但我想要更新后的表格。

我怎样才能让它发挥作用?

干杯

I have a simplier question. However, can't get my head around it.

I basically have class with two functions.
In the first function a button is created aiming at the second function when the button is pressed.

def function1(self):
   self.data = 100

   button = Button(Frame, text='I am a Button!', bg='#ffffff', command=lambda: self.function2(someVariable)).grid(row=3, column=1, sticky=W)

   self.data = 200

Before the button creation a variable is created and updated after the creation.

In the second function there is:

def function2(self, someVariable):
   print(self.data*int(someVariable))

The problem now is that the wrong data (=100) is included in the calculation of the print.
But I want the updated form.

How do I get that to work?

Cheers

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满天都是小星星 2025-01-18 10:59:22
class Solution:
   def function1(self):
       self.data = 100
       self.data = 200

       button = Button(Frame, text='I am a Button!', bg='#ffffff', command=lambda: self.function2(self.data)).grid(row=3, column=1, sticky=W)
       return button


   def function2(self, someVariable):
      return (self.data * int(someVariable))


cl = Solution() # to run the code 
print(cl.function1)

您需要在按钮变量之前更新它,因为 python 解释器是逐行执行的。
在调用 function2 时,函数 2 需要一个参数,我们将 self.data 传递给 func 2 。在上面的代码中你犯了一个错误

class Solution:
   def function1(self):
       self.data = 100
       self.data = 200

       button = Button(Frame, text='I am a Button!', bg='#ffffff', command=lambda: self.function2(self.data)).grid(row=3, column=1, sticky=W)
       return button


   def function2(self, someVariable):
      return (self.data * int(someVariable))


cl = Solution() # to run the code 
print(cl.function1)

You need to update it before button variable because python interpreter executes line by line .
on calling function2 , function 2 requers a parameter , we pass self.data to func 2 . In the above code you did a mistake

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文