Python 如何在类中返回self的值?

Python 如何在类中返回self的值?,python,class,tkinter,self,Python,Class,Tkinter,Self,我有一个名为buttongen的类,它根据建筑物内的房间生成按钮。将对房间进行评估,并将结果存储在数据库中。如何返回按钮上的文本值以存储在变量中?每次尝试存储文件室的结果时,都会给出错误类型error:\uuuu init\uuuu缺少2个必需的位置参数:“I”和“row” 编辑:包括搜索建筑并生成按钮的代码部分 def搜索: 全球屏幕13 全球btn 屏幕13=Tk 屏幕13.geometry300x250 屏幕13.标题栏 sitename3_info=sitename.get.strip

我有一个名为buttongen的类,它根据建筑物内的房间生成按钮。将对房间进行评估,并将结果存储在数据库中。如何返回按钮上的文本值以存储在变量中?每次尝试存储文件室的结果时,都会给出错误类型error:\uuuu init\uuuu缺少2个必需的位置参数:“I”和“row”

编辑:包括搜索建筑并生成按钮的代码部分

def搜索: 全球屏幕13 全球btn 屏幕13=Tk 屏幕13.geometry300x250 屏幕13.标题栏 sitename3_info=sitename.get.strip 如果站点名称3\u信息: cursor=cnn.cursor 将两条SQL语句合并为一条 sql=从房间、站点中选择roomname 其中rooms.siteID\u fk2=Sites.siteID和siteName=%s cursor.executesql[sitename3\u info] rooms=cursor.fetchall 删除以前的结果假设屏幕13只包含结果 对于screen13.winfo_儿童中的w: w、 毁灭 如有房间: 对于i,房间中的行: 巴顿杰尼,世界其他地区 其他: Labelscreen13,text=找不到房间。网格 类按钮: 定义初始自我,第一行: 创建与表中房间数量相对应的自生成按钮数量。 self.i=i self.row=行 self.roomname=self.row[0] self.btn=Buttonscreen13,text=self.roomname,command=lambda:[printself.roomname,action] self.btn.gridrow=i,column=0 def showroomnameself: printself.roomname
如何在roomclicked_info=buttongen中存储按钮上的文本正确的代码可能如下所示:

i = 10   # the i you want
row = 10 # the row you want
roomclicked_info = buttongen(i, row)

类按钮根需要2个必需的位置参数。

正确的代码可能如下所示:

i = 10   # the i you want
row = 10 # the row you want
roomclicked_info = buttongen(i, row)

类buttongen需要两个必需的位置参数。

要初始化buttongen的对象,需要传递定义在def\uu init\uu self,i,row中定义的两个必需参数:i和row


当您使用roomclicked\u info=buttongen创建对象时,您没有在buttongen中指定i和row参数。您可以在此处传递i和row的值,如roomclicked\u info=buttongeni,row。

要初始化buttongen的对象,您需要传递def\uu init\uu self,i,row中定义的两个必需参数:i和row


当您使用roomclicked\u info=buttongen创建对象时,您没有在buttongen中指定i和row参数。您可以在此处传递i和row的值,如roomclicked\u info=buttongeni,row。

您的\uuu init\uuuuuuuuuuuuuu需要2个元素i和row。您的问题源自创建实例的地方。你没有给我们看那部分代码。另外,将完整的错误回溯添加到问题中。当您调用一个类来创建它的实例时,返回值自动为self。执行此操作时,会自动调用类“\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。您需要更多地学习类并更好地理解如何使用它们。您的_uinit__;需要2个元素i和row。您的问题源自创建实例的地方。你没有给我们看那部分代码。另外,将完整的错误回溯添加到问题中。当您调用一个类来创建它的实例时,返回值自动为self。执行此操作时,会自动调用类“\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。你需要更多地学习类,更好地理解如何使用它们。即使单击roomclicked_info=buttongenI,行I仍然会收到错误,例如未定义I和行。是的,这很明显。您必须指定输入行是什么(&W)。正如我在代码self.roomname=self.row[0]中看到的那样,该行是一种类似list或tuplewd的可编辑变量。最好在def showroomnameself下创建一个名为roomclick的列表,并使用appendself.roomname。不要想它。在修复def init__self,i,row之前,您无法访问def showroomnameself。您不必在类buttongen:下查找问题。你们需要关注对象初始化,你们需要理解什么是i和row。问题出在行中,您需要在继续任何操作之前完全理解它。即使单击roomclicked_info=buttongenI,行I仍会收到错误,例如未定义I和行。是的,这很明显。您必须指定输入行是什么(&W)。正如我在代码self.roomname=self.row[0]中看到的那样,该行是一种类似于list或tuplew的可编辑变量。是否最好在def下创建一个名为roomclick的列表
showroomnameself并使用appendself。RoomNameself想都别想。在修复def init__self,i,row之前,您无法访问def showroomnameself。您不必在类buttongen:下查找问题。你们需要关注对象初始化,你们需要理解什么是i和row。问题出在行中,您需要在继续任何操作之前完全理解它。我不能指定我想要的I和行,因为每次都会更改。按钮不是固定的,它们会根据建筑物的不同而变化,这就是我使用self.I和self的原因。row@Julia那么为什么要将它们作为_uinit _;签名的一部分呢?我不能指定我想要的I和行,因为每次都会更改。按钮不是固定的,它们会根据建筑物的不同而变化,这就是我使用self.I和self的原因。row@Julia那你为什么要让它们成为签名的一部分?