I've been programming my entire life and I still wouldn't be able to tell you if a Python class follows best practices simply because I don't know enough python.
The problem is that a non-programmer can't quantify what makes a good programmer any more than a non-mathematician can tell who writes the best topology proofs.
I suppose anyone can get a feel for who "gets shit done" and who doesn't, but then you're measuring something much less tangible than "programming".
Make sure to read my post thoroughly, even I know what the OP is asking is impossible without a basic understanding of what to measure by. I'm just giving them ideas of what to research themselves to help apply some ideas for their "quality" measure.
Also if you can't code a problem without requiring redundancies in your logic, then you might be looking at the problem wrong. This is not absolute, but there are better ways at problem solving in most cases.
edit: grammar
4) Are they using "common" best practices while developing the code?
Depending on the framework, the answers to these questions are often the same.
1) Are they commenting their code?
2) Formatting structure of code
3) Are there redundancies in logic, that over complicate a simple idea.
4) Are they using "common" best practices while developing the code?
5) How long is it taking them to create/implement base elements like functions, classes, variables, etc.
These are just some ideas to look at. A lot of programmers are really great at what they do, but lack organization of what they build. Some programmers are great at organization, but over complicate simple ideas. It's variable based on what your "expecting" with the end product.
Do you want, just get it done, and it works code?
Do you want clean, efficient, and best practices code?