吸气剂还是吸气剂?

时间:2021-01-28 16:52:29

标签: python python-3.x

class ComplexNum:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def real(self):
        return self.x
    def imag(self):
        return self.y
    def get_r(self):
        return math.sqrt(self.y*self.y + self.x*self.x)
    def sqrt(self):
        complexA = cmath.sqrt(complex(self.x, self.y))
        A = ComplexT(complexA.real, complexA.imag)
        return A
    def sub(self, complexNum):
        a = complex(self.x,self.y)
        b = complex(complexNum.x, complexNum.y)
        c = a - b
        return ComplexT(c.real, c.imag)

我现在对 getter 和 setter 的概念有点困惑,这些方法被认为是什么? getter 或 setter 或其他什么?

2 个答案:

答案 0 :(得分:3)

这里只有 getter 和实例方法。在构造函数之外没有更新 self.? = ?

话虽如此,如果你只是在做 return self.?,那么它真的没有必要,因为你可以直接访问 complex_num_instance.? 而无需任何函数调用

答案 1 :(得分:2)

上面代码中显示的方法将是“getter”,因为它们一旦运行就会“获取”某种值。注意它们都是如何返回一些东西的。

浏览器: number = complexnum.real()

'real' 方法将返回 self.x 并将其存储在 'number' 变量中。 number 变量从 real 方法中获得了一个值。一种常用的约定是使用前缀“get”来命名这些方法。所以这个方法会变成'get_real(self)'

setter 的作用正好相反。 setter 将“设置”一个值。

浏览器: 如果我们想设置 self.x 的值,您可以使用这样的方法。 complexnum.set_x(3)。这会将 x 的值设置为 3。

这是使用这些想法重新键入的代码:

# Code 
class ComplexNum:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def get_real(self):
        return self.x
    def get_imag(self):
        return self.y
    def get_r(self):
        return math.sqrt(self.y*self.y + self.x*self.x)
    def get_sqrt(self):
        complexA = cmath.sqrt(complex(self.x, self.y))
        A = ComplexT(complexA.real, complexA.imag)
        return A

    # Adding a setter
    def set_x(self, value):
        self.x = value