繁体   English   中英

Python中的vtk用户类

[英]vtk user class in Python

我想在Python中用自己的东西扩展vtkActor 我找不到调用基类__init__ ,它看起来没有__init__ 也许vtk / Python包装不允许这样的用户专业化, super失败说vtkActor不是一个类型...... ......

我怎么能这样做:

class MyVtkActor(vtk.vtkActor):
  def __init__(self,*args):
    vtk.vtkActor.__init__(self,*args)
    # my stuff here

VTK类的Python包装器有些不同。 看看这个ipython会话:

In [1]: import vtk

In [2]: type(vtk.vtkActor)
Out[2]: <type 'vtkclass'>

In [3]: type(vtk.vtkActor())
Out[3]: vtkobject

基本上,您仍然可以从vtkActor继承,但您不能依赖于Python中使用的对象初始化。 您仍然可以显式调用此超类的“正常”方法,将self作为第一个参数。

您必须手动设置所有属性,以便调用contructor(以C语言表示)。

请记住:对象构造是在初始化之前执行的,因此如果从vtkActor继承,则会调用普通的vtkActor构造函数。 所以通过定义

class MyActor(vtk.vtkActor):
    pass

你也得到一个vtkobject:

In [8]: type(MyActor())
Out[9]: vtkobject

如果你需要一个真实的样本,你可以看看这个课程 这是我的PyLocator程序的一部分。 每个标记(屏幕截图上的蓝色/绿色球)都是这样的对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM