python:类内的函数调用
这是一个示例程序,在按下按钮1或2时显示“Hello”或“Good bye”,这是从我的真实程序简化而来的。python:类内的函数调用,python,kivy,Python,Kivy,这是一个示例程序,在按下按钮1或2时显示“Hello”或“Good bye”,这是从我的真实程序简化而来的。 我要做的是执行函数btn1(),在程序启动时显示“Hello”,而不按按钮1。 我应该在哪里添加哪些代码行? 当我在类问候语中放入“问候语().btn1()”时,出现错误:“名称问候语未定义”。然后我在GreetingApp类中的def build(self)之后放了相同的命令,但什么也没发生 在main.py中 from kivy.app import App from kivy.
我要做的是执行函数btn1(),在程序启动时显示“Hello”,而不按按钮1。
我应该在哪里添加哪些代码行?
当我在类问候语中放入“问候语().btn1()”时,出现错误:“名称问候语未定义”。然后我在GreetingApp类中的def build(self)之后放了相同的命令,但什么也没发生 在main.py中
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty
class Greetings(BoxLayout):
greeting=StringProperty()
def btn1(self):
self.greeting='Hello.'
def btn2(self):
self.greeting='Good-bye.'
class GreetingApp(App):
def build(self):
return Greetings()
GreetingApp().run()
在问候中
#: import main main
Greetings:
<Greetings>:
orientation: "vertical"
Label:
text: root.greeting
BoxLayout:
orientation: "horizontal"
Button:
text: '1'
on_press: root.btn1()
Button:
text: '2'
on_press: root.btn2()
#:导入主
问候语:
:
方向:“垂直”
标签:
文本:root.greeting
盒子布局:
方向:“水平”
按钮:
正文:“1”
按:root.btn1()
按钮:
正文:“2”
按:root.btn2()
在返回根控件之前,只需调用btn1
:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty
from kivy.lang import Builder
Builder.load_string('''
<Greetings>:
orientation: "vertical"
Label:
text: root.greeting
BoxLayout:
orientation: "horizontal"
Button:
text: '1'
on_press: root.btn1()
Button:
text: '2'
on_press: root.btn2()
''')
class Greetings(BoxLayout):
greeting = StringProperty()
def btn1(self):
self.greeting = 'Hello.'
def btn2(self):
self.greeting = 'Good-bye.'
class GreetingApp(App):
def build(self):
root = Greetings()
root.btn1()
return root
GreetingApp().run()
从kivy.app导入应用
从kivy.uix.boxlayout导入boxlayout
从kivy.properties导入StringProperty
从kivy.lang导入生成器
Builder.load_字符串(“”)
:
方向:“垂直”
标签:
文本:root.greeting
盒子布局:
方向:“水平”
按钮:
正文:“1”
按:root.btn1()
按钮:
正文:“2”
按:root.btn2()
''')
课堂问候语(BoxLayout):
greeting=StringProperty()
def btn1(自身):
self.greeting='Hello'
def btn2(自身):
自我问候=‘再见’
班级迎宾应用程序(应用程序):
def生成(自):
root=问候语()
root.btn1()
返回根
GreetingApp().run())
每次创建类的实例时,\uuuu init\uuu
方法都会运行。所以,无论您在创建对象时想做什么,都可以在
\uuuu init\uuuu
中输入。启动对象。把这个放在你的问候课上
def __init__(self, **kwargs):
super(Greetings, self).__init__(**kwargs)
self.btn1()
然后在创建对象时调用它。代码也可以正常工作。谢谢我会尽力理解它在做什么。@user9037109更新了一些解释。如果需要更多解释,请告诉我。谢谢你的补充解释。我只是想知道为什么第一个论点(问候语)是必要的。他们说显式比隐式好,在Python3中它是可选的。谢谢你的一切。@user9037109你很好。是的,这就是在Python2.7中调用super的方式。我看不出你在使用python 3。