Python Kivy:AttributeError:&x27;标签';对象没有属性';a';
我制作了一个简单的应用程序,它有两个同时运行的计时器。一个倒计时,另一个倒计时 我最初试着在标签下缩进“text:str(round(self.a,1)),标题中的错误就会出现。我现在通过如下所示修改代码解决了这个问题(最后在.kv文件部分进行了更改):Python Kivy:AttributeError:&x27;标签';对象没有属性';a';,python,kivy,kivy-language,Python,Kivy,Kivy Language,我制作了一个简单的应用程序,它有两个同时运行的计时器。一个倒计时,另一个倒计时 我最初试着在标签下缩进“text:str(round(self.a,1)),标题中的错误就会出现。我现在通过如下所示修改代码解决了这个问题(最后在.kv文件部分进行了更改): 从kivy.app导入应用 从kivy.uix.label导入标签 从kivy.animation导入动画 从kivy.properties导入NumericProperty 从随机导入randint 从kivy.uix.boxlayout导入
从kivy.app导入应用
从kivy.uix.label导入标签
从kivy.animation导入动画
从kivy.properties导入NumericProperty
从随机导入randint
从kivy.uix.boxlayout导入boxlayout
课堂作业(盒子布局):
a=数值性质(randint(3,7))
b=数值属性(0)
def启动(自):
self.anim=动画(a=0,持续时间=self.a)
self.anim&=动画(b=15,持续时间=15)
self.anim.repeat=真
self.anim.start(self)
班级请柬(App):
def生成(自):
p=请假工作()
p、 开始()
返回p
如果名称=“\uuuuu main\uuuuuuuu”:
请执行app().run()
方向:“垂直”
文本_1:str(圆形(self.a,1))
文本2:str(圆形(self.b,1))
标签:
文本:root.text\u 1
标签:
id:数一数
text:root.text_2
虽然代码现在做了它应该做的事情,但我的问题是,为什么这会纠正错误?我真的不明白为什么会有不同?问题在于变量的范围,在.kv中,至少有以下几种方法可以访问元素: -
id
:
当使用self
时,这意味着同一节点引用自身,在前面的示例property\u b:self.bar\u property
中指出b
的property\u b
的属性将采用与b
的bar\u property
相同的值。它与python类中的用法相同
-根目录
:
二,
方向:“垂直”
id:请你工作
标签:
文本:str(圆形(请工作a,1))
标签:
id:数一数
文本:str(圆形(请工作b,1))
from kivy.app import App
from kivy.uix.label import Label
from kivy.animation import Animation
from kivy.properties import NumericProperty
from random import randint
from kivy.uix.boxlayout import BoxLayout
class PleaseWork(BoxLayout):
a = NumericProperty(randint(3,7))
b = NumericProperty(0)
def start(self):
self.anim = Animation(a=0, duration=self.a)
self.anim &= Animation(b=15, duration=15)
self.anim.repeat = True
self.anim.start(self)
class PleaseApp(App):
def build(self):
p = PleaseWork()
p.start()
return p
if __name__ == "__main__":
PleaseApp().run()
<PleaseWork>
orientation: 'vertical'
text_1: str(round(self.a, 1))
text_2: str(round(self.b, 1))
Label:
text: root.text_1
Label:
id: count_up
text: root.text_2
<A>:
id: a
property_a: b.foo_property
<B>:
id: b
property_b: a.bar_property
<A>:
property_a: self.foo_property
B:
property_b: self.bar_property
<A>:
B:
property_b: root.bar_property
<C>:
D:
property_d: root.bar_property
<PleaseWork>
orientation: 'vertical'
Label:
text: str(round(root.a, 1))
Label:
id: count_up
text: str(round(root.b, 1))
<PleaseWork>
orientation: 'vertical'
id: please_work
Label:
text: str(round(please_work.a, 1))
Label:
id: count_up
text: str(round(please_work.b, 1))