이 기능을 잘 아는 사람은 많지 않지만 Python의 함수 (및 메소드)는 속성 을 가질 수 있습니다 . 보다:
>>> 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 의 docstring 사용입니다. 그러나 사용자 정의 속성은 어떻습니까? 그것들을 사용해야 할 좋은 이유가 있습니까?