如何在不加括号 `()` 的情况下调用类方法?

10 浏览
0 Comments

如何在不加括号 `()` 的情况下调用类方法?

这个问题已经有答案了

如何在Python中使用@property装饰器?

我有一个测试类:

class Foo_class:
    def __init__(self,x=0):
        """init, x defaul as 0."""
        self.x=x
    def val(self):
        return self.x

我想要理解,如何调用:

f=Foo_class()
print(f.val)

f.val 返回 f.val() 的值。

这是可能的吗?

admin 更改状态以发布 2023年5月20日
0
0 Comments

class Foo_class:
    def __init__(self,x=0):
        """init, x defaul as 0."""
        self.x=x
    @property
    def val(self):
        return self.x
test = Foo_class()
test.val

如果你想知道正在发生什么:这基本上是Java人们使用的getter和setter的更好的版本。如果你编写一个类,你不应该公开实例变量,而是应该有一个方法来获取/设置值,这样你就可以在不破坏正在使用它的代码的情况下改变内部情况。在Python中,公开变量是可以的,因为你可以使用它。

0