首页 > 解决方案 > 我如何声明我的班级,以便我可以这样访问

问题描述

在 micropython 中有一个模块 neopixel 可以与 ws2812 可寻址 LED 交互,示例代码是

from microbit import *
import neopixel

pixel = neopixel.NeoPixel(pin0, 64)

pixel[0] = (255, 0, 0)
pixel.show()

这声明了由 pin0 控制的 64 个 LED,将第一个设置为红色并更新 LED 阵列。

我如何声明一个类,以便我可以像行一样分配值pixel[0] = (255, 0, 0)

标签: pythonpython-3.xmicropythonbbc-microbit

解决方案


虽然这__setitem__是正确的,但在编码中添加 getter 和 setter 是非常常见的。

我个人建议使用 attr : http: //www.attrs.org/en/stable/examples.html

这可以实现大量的魔法,并且 setter 包含在功能中。

pip install attrs

import attr
@attr.s
class dummy():
    x= attr.ib()
test = dummy ([0])
test.x[0] = 2
test

推荐阅读