Minimal example of the class: from pydantic import BaseModel class AdaptedModel(BaseModel): def get_all_fields(self, alias=False): return list(self.schema(by_alias=alias).get("properties").keys()) class TestClass(AdaptedModel): test: str The way it works: dm.TestClass.get_all_fields(dm.TestClass) Is there a way to make it work without giving the class again? Desired way to get all field names: dm.TestClass.get_all_fields() It would also work if the field names are assigned to an attribute. Just any way to make it make it more readable Continue reading...