是否存在只能由特定类实例[Python]访问的类属性



是否可以定义一个类,该类具有仅特定类型的类可见和可访问的属性,甚至可能仅特定类型类的特定实例。

示例:我想定义一个类(类a(,它持有并控制一些资源。还有另一个类(类B(,它有一些数据/状态信息,需要使用类A持有的资源。因此,用户API将只定义一个类A,然后定义多个类B实例,他们可以将这些实例添加/注册到类A实例。是否可以使B类实例的某些属性和方法仅由A类实例可见/可访问,而不由用户访问?例如,如果有一个属性包含某个日期时间值,那么只有a类实例可以访问该属性,但用户不能直接访问。

编辑:我知道我可以把这些属性和方法"私有化",这样就能实现我想要的。但这违背了私有属性/方法的概念(一些人仍然在外部使用它们(。此外,我希望有一种更优雅(蟒蛇(的方式来实现这一点。

不,这是不可能的。属性要么可以访问,要么不能访问。除了只能在同一类中访问的私有属性(除非您手动篡改名称(之外,没有基于属性引用位置的访问控制。

最新更新