0
用として、私は、変数(int
、string
とlist
)を持つクラスを持っています。そして、変数の値を取得するために@propertyを使用したい、この変数に値を設定するためのsetterを使用したいと思います。私はint
とstring
変数のためではなくlist
ために、この概念を実装することができます。私もリストのためにそれを実装するのを手伝ってください。Pythonのプロパティとセッターint型と文字列
class MyClass:
def __init__(self):
self._a = 1
self._b = 'hello'
self._c = [1, 2, 3]
@property
def a(self):
print(self._a)
@a.setter
def a(self, a):
self._a = a
@property
def b(self):
print(self._b)
@b.setter
def b(self, b):
self._b = b
my = MyClass()
my.a
# Output: 1
my.a = 2
my.a
# Output: 2
my.b
# Output: hello
my.b = 'world'
my.b
# Output: world
# Need to implement:
my.c
# Output: [1, 2, 3]
my.c = [4, 5, 6]
my.c
# Output: [4, 5, 6]
my.c[0] = 0
my.c
# Output: [0, 5, 6]
my.c[0]
# Output: 0
私は同様の質問を発見したが、リストのためのオペレーションを呼び出し、このようにint型と文字列とは異なりますので、彼らは、私のために合わない:
あなたは([最小、完全、かつ検証]にこれをダウントリミングすることができhttp://stackoverflow.com/ help/mcve)の例です。そうすれば、私たちがあなたを助けやすくなります。 –
@ stephen-rauchありがとうございました。私は誤ってメモ帳からコードを2回コピーしました。私は自分のコードの複製を削除しました。 –
なぜプロパティを返すのではなく値を出力するのですか?そしてなぜあなたは財産を持っているのですか? Pythonがプロパティを持っているので、ゲッターやセッターが必要ないと言っている人は、プロパティをどこにでも使うはずはありません。それはあなたが普通の属性を使うことになっていることを意味し、属性を取得したり設定したりするためにいくつかのロジックを付ける必要があると判明した場合、*あなたは 'property'を持ち込みます。 – user2357112