当前位置: 首页 > 面试题库 >

Python-使用getter和setter的pythonic方法是什么?

芮安顺
2023-03-14
问题内容

我这样做:

def set_property(property,value):  
def get_property(property):  

要么

object.property = value  
value = object.property

我是Python的新手,所以我仍在探索语法,并且我想在此方面提供一些建议。


问题答案:

试试这个:Python属性

示例代码是:

class C(object):
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        print("getter of x called")
        return self._x

    @x.setter
    def x(self, value):
        print("setter of x called")
        self._x = value

    @x.deleter
    def x(self):
        print("deleter of x called")
        del self._x


c = C()
c.x = 'foo'  # setter called
foo = c.x    # getter called
del c.x      # deleter called


 类似资料:
  • 假设我有一个类Things,它包含许多不同的实例变量。我为它们分别创建了单独的setter和getter方法。如果我想创建另一个存储things'class'的class2,那么为things类中的实例变量创建额外的setter和getter方法是很好的编码方法。另外,假设我有另一个使用class2的class3,那么重复setter和getter方法会产生高耦合吗?

  • 问题内容: 我读过一些书,说为诸如和的变量创建setter和getter很好。例如: 但这有什么区别? 和 如果二传手和消气手更好,您能给我解释一下实际问题吗? 问题答案: 多个原因: 如果您允许像 shape.x = 90 那么您将来将无法添加任何逻辑来验证数据。 如果x不能小于100,就不能这样做,但是如果您有像 您不能在写入逻辑上添加诸如复制之类的内容(请参见CopyOnWriteArray

  • 问题内容: 这是一个纯Python特定的设计问题: 和 Python让我们可以用任何一种方式来做。如果要设计Python程序,将使用哪种方法,为什么? 问题答案: 首选属性。这就是他们在那里的目的。 原因是所有属性在Python中都是公共的。以一两个下划线开头的名称只是警告,给定属性是实现细节,在将来的代码版本中可能会保持不变。它不会阻止您实际获取或设置该属性。因此,标准属性访问是访问属性的常规P

  • 假设我有一个类Things,它包含许多不同的实例变量。我为它们分别创建了单独的setter和getter方法。如果我想创建另一个存储things'class'的class2,那么为things类中的实例变量创建额外的setter和getter方法是很好的编码方法。另外,假设我有另一个使用class2的class3,那么重复setter和getter方法会产生高耦合吗?

  • 问题内容: 我看到成员变量被赋予了私有修饰符,然后使用getter / setter方法只是为了设置和获取变量的值(以标准化的名义)。 然后为什么不将变量本身公开(除了像spring框架这样的案例,该案例依赖于IOC的getter / setter方法)。它达到目的。 在C#中,我看到成员变量的大小写为getter / setter。为什么不将变量本身公开? 问题答案: 为了从一开始就获得 稳定的

  • 菜单栏: Code —> Generate —> Getter and Setter Mac: command + N Windows\/Linux: Alt + Insert —> Getter and Setter