एक सुंदर तरीका डेकोरेटर लागू का उपयोग करके, एक समारोह के फ्रेम में वर्ग संपत्ति व्यवस्थित करने के लिए किया गया था।प्रतिवाद
class Example(object):
@apply
def myattr():
doc = """This is the doc string."""
def fget(self):
return self._half * 2
def fset(self, value):
self._half = value/2
def fdel(self):
del self._half
return property(**locals())
लेकिन अब आवेदन को हटा दिया गया है।
वहाँ नए के साथ इस तरह सादगी और संपत्ति के लिए पठनीयता प्राप्त करने के लिए किसी भी संभावना है, के बजाय आया "विस्तारित कॉल वाक्य रचना"?
मेरे दृष्टिकोण अनुराग के रूप में ही है, लेकिन, अब मैं डायन नहीं है एक बेहतर है, देखने के लिए कृपया:
def prop(f):
return property(**f())
class A(object):
@prop
def myattr():
def fget(self):
return self._myattr
def fset(self, value):
self._myattr = value
return locals()
मुझे यह नहीं पता था और मुझे यह बहुत पसंद है। ऊपर 'लागू' जादू इतना अपठनीय था कि मुझे नहीं पता था कि सवाल क्या था। मैं @property जानता था और इसका बहुत उपयोग करता हूं, लेकिन .setter और .deleter मेरे लिए नए हैं और महान (स्वयं-दस्तावेज़ कोड) देखें :) –
आप गेटटर के तर्कों में स्वयं को याद कर रहे हैं, नहीं? –
@ डेविड: सही, तय, टा। – bobince