首页 > 解决方案 > 如何使自定义对象中未公开的某些属性?不使用 self.__name

问题描述

例如,我有一个实例:

class Job(object):
    def __init__(self, name, client=None):
        self.name = name
        self.client = client

job = Job('test')

job.client  # I don't want the client to be accessed outside, as it's only as an internal attribute.

通过在社区中搜索,我没有找到我想要的解决方案。

虽然我知道将客户端设置为__client可以实现这一点,但我不想更改属性名称。

我猜一些魔术函数能够实现这一点,比如__dict__or __getattr__。有人可以告诉我一些想法吗?非常感谢。

标签: python

解决方案


推荐阅读