【问题标题】:Python: How to rename public available variable?Python:如何重命名公共可用变量?
【发布时间】:2023-02-10 18:09:35
【问题描述】:

想象一下有这个类:

class Foo:
    def __init__(self):
        self.nr = 0

进一步想象Foo被广泛使用。一些脚本和用户使用变量Foo.nr 来读取和写入它的值。

现在假设开发人员想要将.nr 的名称更改为.val

class Foo:
    def __init__(self):
        self.val = 0

为了不强迫用户更新他们的代码,是否有可能通过写.nr让他们访问.val?像这样:

f1 = Foo()
print(f1.nr)

我想出了属性以及 getter 和 setter 方法,但我看不出它们有什么用。

【问题讨论】:

  • 也许添加一个带有 setter 和 getter 的 @property 是一个解决方案。那些确实可以访问相同的self.val

标签: python class variables rename


【解决方案1】:
class Foo:
    def __init__(self):
        self.val = 0

    @property
    def nr(self):
        return self.val

    @nr.setter
    def nr(self, value):
        self.val = value
        
f1 = Foo()
print(f1.nr)

会按预期给0

【讨论】:

  • 天哪,这很容易。谢谢。
猜你喜欢
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 2013-05-06
  • 2012-03-22
  • 2021-07-27
  • 1970-01-01
  • 2012-10-10
  • 2016-01-29
相关资源
最近更新 更多