有人可以告诉我如何在add_row
课程中使用def test(self):
方法拨打User
方法吗?
现在我正在使用代码进行调用Rows().add_row()
。我在def add_row(self):
中打印一些内容然后打印但不在屏幕中添加小部件。
class User(Popup):
def __init__(self, obj, **kwargs):
super(User, self).__init__(**kwargs)
def test(self):
Rows().add_row()
class narration(BoxLayout):
col_data = ListProperty(["?", "?", "?"])
button_text = StringProperty("")
def __init__(self, **kwargs):
super(narration, self).__init__(**kwargs)
class Rows(BoxLayout):
row_count = 0
def __init__(self, **kwargs):
super(Rows, self).__init__(**kwargs)
def add_row(self):
self.row_count += 1
self.add_widget(narration(button_text=str(self.row_count)))
答案 0 :(得分:0)
class User(Popup):
def __init__(self, obj, **kwargs):
super(User, self).__init__(**kwargs)
self.row_obj = obj
def test(self):
self.row_obj.add_row()
class narration(BoxLayout):
col_data = ListProperty(["?", "?", "?"])
button_text = StringProperty("")
def __init__(self, **kwargs):
super(narration, self).__init__(**kwargs)
class Rows(BoxLayout):
row_count = 0
def __init__(self, **kwargs):
super(Rows, self).__init__(**kwargs)
def add_row(self):
self.row_count += 1
self.add_widget(narration(button_text=str(self.row_count)))
rows_obj = Rows()
user_obj = User(rows_obj)
它不是一个有效的代码它只是一个例子但是你的方法应该是那样的。如果你不想传递" Rows"上课而不是#34;用户"作为" Rows"使用继承概念的类。
class User(Rows,Popup):
答案 1 :(得分:-1)
我稍微改变了你的代码,向你展示它是如何完成的。
class Rows(object):
row_count = 0
def __init__(self, **kwargs):
super(Rows, self).__init__(**kwargs)
def add_row(self):
self.row_count += 1
print "Hello"
# self.add_widget(narration(button_text=str(self.row_count)))
class User(Rows):
def __init__(self, obj, **kwargs):
super(User, self).__init__(**kwargs)
def test(self):
self.add_row()
class narration(object):
# col_data = ListProperty(["?", "?", "?"])
# button_text = StringProperty("")
def __init__(self, **kwargs):
super(narration, self).__init__(**kwargs)
为了让它发挥作用,我必须注释掉一些行。
from tmp import User
if __name__ == '__main__':
temp = User("H")
temp.test()
# outputs : Hello
我们所做的是实现User类,例如:
class User(Rows):
,因此当您使用正确的super()
语句调用User类时,您将能够使用行的方法 >就像你在用户类中定义一样使用它。
因此,您将调用(已在代码中进行了修改):self.add_row()
,即使add_row()
是来自行的方法。