我的目标是创建一个定制的SchemDraw元素。我正在跟踪定义自定义元素文档。SchemDraw是0.14版本,Python是3.9版,matplotlib是3.5.1,我运行的代码是木星6.4.7,操作系统是Windows 10。
这是我的MWE:
import schemdraw
print("SchemDraw version is {}".format(schemdraw.__version__))
from schemdraw.elements import Element
from schemdraw.segments import *
class Flash(Element):
def __init_(self, *d, **kwargs):
super().__init__(*d, **kwargs)
self.segments.append(Segment([(0,0),(10,0),(10,10),(0,10)]))
d = schemdraw.Drawing()
d += Flash(label="Flash")
d.draw()
预期:一个标有文字"Flash“的正方形出现在in单元格中。
观察:文字"Flash“出现在外部单元格中。
没有出现包围方格。在"Flash“对象周围添加其他元素的实验表明,它的范围为零。
有什么想法吗?有没有人有一个他们可以共享的子类schemdraw.elements.Element的工作示例?
干杯,
科林。
发布于 2022-04-19 01:01:05
在__init__
行中缺少一个下划线,它需要在前后都使用双下划线:
`def __init__(self, *d, **kwargs):`
只要使用一个下划线,init函数就不会运行,并且段也不会添加到元素中。
https://stackoverflow.com/questions/71905337
复制相似问题