多重遗传构建的个性特征

2024-04-19 21:59:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个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对象相关联的方法,正如我所期望的那样。我应该实现getset方法吗?你知道吗


Tags: path对象方法fromimportcustompass特性
1条回答
网友
1楼 · 发布于 2024-04-19 21:59:18

你认为A(p='/tmp')应该做什么?你知道吗

我可以告诉你想做什么,但是如果你的代码是正确的,这个语句应该会失败。不是类型错误,而是用字符串替换A对象上的变量P,该对象以前是PathTrait的实例。你知道吗

你想做的只是概念上的混淆。File是一个表示trait对象的类。从技术上讲,python允许您扩展这个对象,因为python的类型安全性很低,但这并不意味着您的python类现在会突然像trait一样工作。你知道吗

要定义自定义特性,您需要使用设计用于处理特性的工具,例如Trait构造函数。你知道吗

相关问题 更多 >