我试图创建一个custom trait,它表示一个unipath.Path对象。重用File特性提供的机制似乎是有利的,因此我的想法是使用多重继承。你知道吗
from unipath import Path
from traits import File
class PathTrait(Path,File):
pass
class A(HasTraits):
p = PathTrait()
但是,当我通过A(p='/tmp/')
使用它时,A.p
没有任何与Path
对象相关联的方法,正如我所期望的那样。我应该实现get
和set
方法吗?你知道吗
你认为
A(p='/tmp')
应该做什么?你知道吗我可以告诉你想做什么,但是如果你的代码是正确的,这个语句应该会失败。不是类型错误,而是用字符串替换
A
对象上的变量P,该对象以前是PathTrait
的实例。你知道吗你想做的只是概念上的混淆。
File
是一个表示trait对象的类。从技术上讲,python允许您扩展这个对象,因为python的类型安全性很低,但这并不意味着您的python类现在会突然像trait一样工作。你知道吗要定义自定义特性,您需要使用设计用于处理特性的工具,例如
Trait
构造函数。你知道吗相关问题 更多 >
编程相关推荐