Tidak banyak yang mengetahui fitur ini, tetapi fungsi (dan metode) Python dapat memiliki atribut . Melihat:
>>> 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
Apa kegunaan dan penyalahgunaan yang mungkin dari fitur ini di Python? Satu kegunaan yang baik yang saya ketahui adalah penggunaan dokumen oleh PLY untuk mengaitkan aturan sintaksis dengan suatu metode. Tetapi bagaimana dengan atribut khusus? Apakah ada alasan bagus untuk menggunakannya?