【发布时间】:2024-01-02 22:26:01
【问题描述】:
我认为用一个简单的例子来解释我想要实现的目标对我来说更容易。考虑以下代码:
class Person(object):
def __init__(self):
self._age = None
self._gender = None
def age(self, value):
self._age = value
return self
def gender(self, value):
self._gender = value
return self
p = Person().age(10).gender("male")
assert p.age == 10
assert p.gender == "male"
显然断言失败是因为属性引用了方法而不是变量。 我曾尝试弄乱 __getattribute__ 方法,以便将“age”解析为“_age”,但我似乎无法找到两种情况都适用的方法,而且我不完全确定它是否可能,但 Python 让我感到惊讶我以前。
【问题讨论】:
-
如果您真的想使用数据隐藏,这里有一个 example 属性,可以帮助您入门。