बहुत से लोग इस सुविधा से अवगत नहीं हैं, लेकिन पायथन के कार्यों (और विधियों) में विशेषताएं हो सकती हैं । देखो:
>>> def foo(x):
... pass
...
>>> foo.score = 10
>>> dir(foo)
['__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__get__', '__getattribute__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name', 'score']
>>> foo.score
10
>>> foo.score += 1
>>> foo.score
11
पायथन में इस सुविधा के संभावित उपयोग और दुरुपयोग क्या हैं? एक अच्छा उपयोग जो मुझे पता है कि एक विधि के साथ एक वाक्यविन्यास नियम को संबद्ध करने के लिए PLY के उपयोग का है। लेकिन कस्टम विशेषताओं के बारे में क्या? क्या उनके उपयोग करने के अच्छे कारण हैं?