pythonのpropertyの変数のアンダースコアの意味


Pythonのpropertyについて質問です。  
よく見かけるコードでは以下のようにインスタンス変数の前にアンダースコアがついていますが、  
これはどういう意味なのでしょうか？  
propertyを使うときには必要なのですか？

[code]

    class MyClass:
    
        def __init__(self, x):
            self._x = x
    
        @property
        def x(self):
            return self._x
    
        @x.setter
        def x(self, x):
            self._x = x
            do_something()
    
[/code]




名前がアンダースコアで始まる場合、そのインスタンス変数は慣習的にプライベート変数として扱われます。ただし本当のプライベート変数ではないので外側からアクセスすることが出来ます。

[9\. クラス — Python 3.6.1
ドキュメント](https://docs.python.jp/3/tutorial/classes.html#private-variables)

挙げられたコードの場合は、`_x`の代わりに名前`x`でアクセスできるようにゲッタとセッタが定義されていますね。ただ、特にアンダースコアが必要ということは無いはずです。

[2\. 組み込み関数 — Python 3.6.1
ドキュメント](https://docs.python.jp/3/library/functions.html#property)

