["python"]
if A vs if A is not None:

Can I use: if A: instead of if A is not None: The latter seems so verbose. Is there a difference?
The statement if A: will call A.__bool__() (see Special method names documentation), which was called __nonzero__ in Python 2, and use the return value of that function. Here's the summary: object.__bool__(self) Called to implement truth value testing and the built-in operation bool(); should return False or True. When this method is not defined, __len__() is called, if it is defined, and the object is considered true if its result is nonzero. If a class defines neither __len__() nor __bool__(), all its instances are considered true. On the other hand, if A is not None: compares only the reference A with None to see whether it is the same or not.