关于下面这段python代码的一点疑问?
大家讲道理
大家讲道理 2017-04-18 09:06:38
0
2
378

这段代码是《python核心编程》中的例子,是讲property()函数的。
代码如下:

class HideX(object):
    def __init__(self, x):
        self.x = x
    def get_x(self):
        return ~self.__x
    def set_x(self, x):
        assert isinstance(x, int), '"x" must be an integer!'
        self.__x = ~x
    x = property(get_x, set_x)

在__init__中看到实例属性叫作x,而在get_x和set_x中实例属性却用的__x。我运行了一下,结果没问题。
结果如下图:

我想问,在__init__与get_x、set_x用的属性名不一样,为什么结果不会出错?在一个变量名前加上__不是意味着就成了另一个变量名了?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(2)
黄舟

リーリー

いいねを押す +0
伊谢尔伦

リーリー ここでの

x は変数
ではなく、プロパティ
set_x

を呼び出します。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート