gpt4 book ai didi

python - 指令行为的解释

转载 作者:行者123 更新时间:2023-11-30 23:00:51 24 4
gpt4 key购买 nike

我是 Python 的新手,我不明白 Kivy 指令所使用的魔力。例如,按照文档,我以这种方式开发了我的(天真的)布局颜色背景扩展

class BoxLayoutColor(BoxLayout) :
def __init__(self, color = (0,0,0,1), **kwargs):
super(BoxLayoutColor, self).__init__(**kwargs)
with self.canvas.before:
(r,g,b,a) = color
Color(r,g,b,a)
self.rect = Rectangle(size=self.size, pos=self.pos)
self.bind(size=self._update_rect, pos=self._update_rect)
def _update_rect(self, instance, value):
self.rect.pos = instance.pos
self.rect.size = instance.size

它似乎有效,但我想知道构造函数 Color() (因为它是一个构造函数,我是对的?)如何影响上下文。肯定有一些我无法从 Python 文档中发现的关于 with 语句的隐含内容......

此外,还有一种方法可以将该功能分组以供其他布局重用?

最佳答案

with 语句是一种通用的 Python 语法,它调用传递给它的对象的一些特殊方法(在本例中为 self.canvas.before)。当这种情况发生时,kivy 的 Canvas 会在某处设置一个全局变量,并在 with 语句结束时取消设置它。当指令被实例化时,它们检查是否定义了该变量,如果是,则自动将其自身添加到给定的 Canvas 中。

And also, there is a way to group that functionality to be reused for other layouts ?

Kivy 不支持任何小部件操作的这种语法,尽管添加它可能并不难。我们大多使用 kv 语言,它还有其他优点。

关于python - 指令行为的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com