@property
通常のプロパティの使用に微妙な違いがあるかどうか、誰かが知っているかどうか疑問に思っていましたか?
@property
Python でデコレータを使用する場合、プロパティの初期化で問題が発生する可能性はありますか? このデコレーターは、他の変更可能なプロパティに依存するプロパティであるため、呼び出されるたびに関数によってプロパティを計算できることを理解しています。これらのデコレータのいくつかを書き@property
ましたが、何らかの理由で機能しません。次の形式のエラーが表示されます。
for key in temp_spectra.overall_properties_dictionary:
AttributeError: 'Spectra' object has no attribute 'overall_properties_dictionary'
@property
私が理解しているように、これらの sを作成する正しい方法は次のようになります。
from PyQt4 import QtCore, QtGui
class someObject(QtCore.QObject):
def __init__(self, x, y):
self.x = x
self.y = y
@property
def some_other_property(self):
# some complicated function which will recalculate everytime it is called
# because the other properties may be mutable
p = self.x + self.y
return p
class otherObject(QtGui.QTabWidget):
def __init__(self, someObject):
print someObject.some_other_property
otherObject(someObject(1,5))
しかし、これはうまくいきます!したがって、コードのどの部分がこれを引き起こしている可能性があるかはわかりません。
私は自分のコードを変換して利用する過程にあることに言及する価値がありますmultiprocessing
。これにより問題が発生する可能性はありますか? このタイプのエラーを引き起こすために、初期化で何が問題になる可能性があるのか わかりません。
編集:提案されたように、新しいスタイルのクラスに一致するようにコードを変更しました.*