프로그래밍/Python
[Python] Expected type X, got Type[X] instead
vince joe
2021. 9. 10. 10:37
from typing import List
def get_all_fields(model: models.Model) -> List[str]:
return [field.name for field in model._meta.fields]
Django 개발중에 이런 함수를 만들었습니다. (무슨 코드인지는 생략)
Expected type 'Model', got 'Type[MyModel]' instead
근데 list_display에 쓰려고 보니 뭔가 오류가 나옵니다.
문제는 파라미터 타입으로 클래스의 SubType을 지정할 때 Type[T]으로 감싸줘야 한다네요. typing 어렵습니다;
(관련 내용: https://stackoverflow.com/a/44664064/4295499)
from typing import List, Type
def get_all_fields(model: Type[models.Model]) -> List[str]:
return [field.name for field in model._meta.fields]
어쨌거나 이런식으로 수정하면 됩니다.
반응형