したがって、次のコードがあります。クラスの属性に、ある種のメタデータを追加しようとしています。私の考えは、ゲッターがfloat / int / stringプライベート変数を返すが、詳細な名前などの追加のデータを返すゲッター/セッターを用意することでした。
これは、セッターを使用するまでは完全に機能します。セッターは、一度使用するとセッターとゲッターを無視するようです。
私がしていることがうまくいかない理由を誰かが知っていますか?または、私がやろうとしていることを実行するためのより良い方法がある場合はどうなりますか?
どうもありがとう!
class Param(float):
def __new__(self,name,value):
return float.__new__(self,value)
def __init__(self,name,value):
self.__name = name
name = property(lambda self: self.__name)
class Beer:
def __init__(self, temp):
self.__T = temp
@property
def temp(self):
return Param('Beer Temperature', self.__T)
@temp.setter
def temp(self,value):
self.__T = float(value)
print b.temp.name, b.temp.__class__
print b.temp * 4.5
print b.temp.name, b.temp.__class__
b.temp = 101
print b.temp.name, b.temp.__class__