此python语句的作用是什么?

问题描述 投票:0回答:1

我正在尝试探索Kivy API,我对在multitexture example中找到的一些代码行感到非常困惑。一行代码似乎为“ self.canvas”中的“ texture0”键分配了一个值“ 1”,将“ self.canvas”当作是Python字典。

该代码为self.canvas['texture0'] = 1

但是,当我跳过调试器的这一行时,在self.canvas中看不到这样的条目,而且self.canvas的类型为“ RenderContext”。实际上,我什么都看不到,表明该语句更改了调试器中可观察到的任何内容,但是如果我求值self.canvas['texture0'],则求值为“ 1”。

enter image description here

此值存储在哪里?我在Kivy的canvas docs

中也找不到任何线索
python canvas kivy textures
1个回答
0
投票

好像是Python字典一样对待“ self.canvas”。

这与字典没有特别关系,使用[]表示法只是调用__getitem____setitem__-请参阅the Python docs。碰巧的是,在这种情况下,该类将数据存储在内部字典中,但这是实现的详细信息,而不是此语法所需的内容。

但是,当我跳过调试器的这一行时,在self.canvas中看不到这样的条目

画布对象在cython中定义,并且用于此存储的内部状态属性对于Python代码不可见。

© www.soinside.com 2019 - 2024. All rights reserved.