Rhino(犀牛)中国技术支持与推广中心

标题: python如何使用被保护的对象 [打印本页]

作者: 筑梦NARUTO    时间: 2015-11-21 00:12
标题: python如何使用被保护的对象
如图,当我在使用SetValue()方法的时候,返回了无法访问被保护的对象,查了下,貌似需要写类从要使用的类中继承。在自己定义的类中调用SetValue()就可以了。但还是没有写好。希望jorin大大解答下。谢谢

原厂1.jpg (243.16 KB, 下载次数: 61)

原厂1.jpg

原厂1.zip

6.31 KB, 下载次数: 121


作者: Jorin    时间: 2015-11-22 00:00
只有Panel 的 NickName 是可通过 obj.NickName = "jkk" 修改的,Panel 本身就是GH_DocumentObject的一个子类,Panel 修改内容都是通过该电池内部的代码来完成的,我并没有看到有开放函数给开发者修改其中的内容。InstanceDescription 属性有很多操作的方法,但操作后都不是直接作用于提供数据的 Panel 的。
作者: 筑梦NARUTO    时间: 2015-11-22 00:13
Jorin 发表于 2015-11-22 00:00
只有Panel 的 NickName 是可通过 obj.NickName = "jkk" 修改的,Panel 本身就是GH_DocumentObject的一个子 ...

不单纯是问Gh_panel,我只是好奇用户能不能使用被保护的对象(就像gh_panel类下的SetValue方法。Gh_panel只是我在遇到这个问题时遇到的例子。别的类也行。
作者: Jorin    时间: 2015-11-22 08:47
筑梦NARUTO 发表于 2015-11-22 00:13
不单纯是问Gh_panel,我只是好奇用户能不能使用被保护的对象(就像gh_panel类下的SetValue方法。Gh_panel ...

所谓 protected 方法,是只能在该类的内部和子类中才能使用的方法。在该类和该类的子类外部是无法调用的。

Python 没有  protected 的概念,所以这个方法显示在GH_Panel. 后面了,如果你用 C# 在 GH_Panel. 后面根本就看不到这个方法。
作者: 筑梦NARUTO    时间: 2015-11-22 08:52
Jorin 发表于 2015-11-22 08:47
所谓 protected 方法,是只能在该类的内部和子类中才能使用的方法。在该类和该类的子类外部是无法调用的 ...

好吧,那可以写个类继承Gh_Panel类么?然后在自己写的类里能调用被保护的方法么?
作者: Jorin    时间: 2015-11-22 09:27
筑梦NARUTO 发表于 2015-11-22 08:52
好吧,那可以写个类继承Gh_Panel类么?然后在自己写的类里能调用被保护的方法么?

当然可以




欢迎光临 Rhino(犀牛)中国技术支持与推广中心 (http://bbs.rhino3d.asia/) Powered by Discuz! X3.2