2011-08-19 14 views
15
@staticmethod और @classmethod के अलावा

? अधिकांश भाषाओं में कुछ मूलभूत पुस्तकालय हैं जो अधिकांश भाषा सुविधाओं का उपयोग करते हैं।क्या पाइथन मानक पुस्तकालय में सजावटी हैं?

ऐसा लगता है कि मैं अपने आप को सज्जाकार बनाने लगता है की बहुत सी बातें जो लोगों की टन का प्रयोग करेंगे रहे हैं, लेकिन मैं किसी भी इनबिल्ट अजगर सज्जाकार जो उन्हें करना नहीं मिली है। क्या ऐसी चीजें हैं?

उत्तर

20

property आम तौर पर एक डेकोरेटर के रूप में प्रयोग किया जाता है।

functools ऐसे total_ordering, update_wrapped, lru_cache, और wraps के रूप में कई कार्य सामान्य रूप से एक डेकोरेटर के रूप में इस्तेमाल किया गया है।

contextlib contextmanager डेकोरेटर है।

ध्यान रखें, यदि आप एक डेकोरेटर के रूप में किसी भी समारोह का उपयोग कर सकते हैं:

@decorator 
def function(): pass 

बस के रूप में

def function(): pass 
function = decorator(function) 

क्रम उपयोगी हो करने के लिए एक ही है, वे आम तौर पर एक प्रतिदेय उम्मीद करने की आवश्यकता है एक तर्क के रूप में और उन्हें एक कॉल करने योग्य वस्तु वापस करने की जरूरत है। (property कि के दूसरे भाग के लिए एक अपवाद है।)

कक्षाएं भी बिल्कुल उसी तरह से सजाया जा सकता है।

वहाँ भी एक list of decorators on the Python Wiki है। उनमें से कुछ मानक पुस्तकालय में हैं, कुछ नहीं हैं।

0

अजगर सज्जाकार सादे कार्यों या अन्य callables जो के रूप में एक तर्क समारोह या वर्ग ले सजाया जा करने के लिए कर रहे हैं उपयोगी सज्जाकार का एक संकलन है। इस तरह आप सजावटी के रूप में कई सामान्य कार्यों का उपयोग कर सकते हैं और इसके विपरीत। सजावटी के रूप में संभावित उपयोग अक्सर स्पष्ट रूप से दस्तावेज नहीं किया जाता है।

+0

मैंने उदाहरण के साथ, मेरे उत्तर में इसका उल्लेख किया। – agf

संबंधित मुद्दे