Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
123 views
in Technique[技术] by (71.8m points)

python - How to type hint a class that doesn't have a static definition

We have a database query API that executes an SQL string and returns a list of DBRow objects. The structure of the DBRow object is determined by the SQL query, so if for example the query was

SELECT id, name FROM tbl;

then DBRow will have id and name members, as in

print(db_row.name)

I'm not saying that this is a good API, but I'm stuck with it until we have the man resources to switch to something else, and in the meantime this is making static type checking hell. Any use of a DBRow's dynamically created members, which happens very often, causes a type error, because even though I can annotate that a function returns DBRow, the DBRow class definition doesn't have the members that executing a query will populate.

I don't want to disable warnings about missing members globally, and I don't want to reannotate all functions that return DBRow as returning Any. So what are my options?

I'm using Pyright if that helps, but am open to using another type checker as well.

question from:https://stackoverflow.com/questions/65870871/how-to-type-hint-a-class-that-doesnt-have-a-static-definition

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...