제네릭 클래스에 대해 많이 읽었으며 멋진 코드이지만 때로는 제네릭 함수 만 있으면됩니다. 여기에 제가 작성한 작은 글이 있습니다 :Python의 제네릭 함수 모범 사례
def _matrix_map(self, mapper):
"""returns the matrix applying the mapper funcfunc"""
return {key: mapper(value) for key, value in self._matrix.items()}
유형에 주석을 달아야하는 이유는 무엇입니까?
T = TypeVar('T')
def _matrix_map(self, mapper: Callable[[Tile], T]) -> Dict[Coordinate, T]:
을 나는 그것이 mypy로 통과있어 : 일반적인 지원하는 정적으로 입력 된 언어로, 난 내가 이런 식으로 쓰기 줄 알았는데, 그래서이
private Dictionary<KeyType, ValueType> matrix;
private Dictionary<KeyType, T> matrix_map<T>(Func<ValueType, T>)
같은 것을 써서 이렇게, 그러나 pylint는 이것을 싫어한다. 첫 번째 줄에
:
C0103:Invalid class attribute name "T"
그리고 두 번째 줄에
:E0602:Undefined variable 'T'
그래서 내가 뭔가 잘못하고 있어요 같은 느낌, 내가 변수 이름 (ttt
을 변경할 수 있을까? typ
?)하지만 두 번째 문제는 해결되지 않습니다. 내가 (정적 형식의) 제네릭 함수를 원하는 사람이 될 수는 없지만 어디서나 좋은 리소스를 찾을 수는 없습니다. 어떤 추천?
참조? –
@SamCraig 예, 그랬습니다. 문제는 유형을 찾을 수 없다는 것이 아니라 이전 줄에서 선언 한 변수 T를 찾을 수 없다는 것입니다. – McKay