If you think about it, ObjC has a lot of similarities to a dynamic objected oriented programming language. You can add methods, check if a method exists and a lot more. Imagine something like this =>
That's because ObjC comes from the unholy marriage of C and Smalltalk. It kind of ruined both, but coming from a Smalltalk background, I quite liked it, and was sad when C++ won the day.
We understand what you're talking about; I don't think you need to explain the concept.
if obj.isNumber():
where you can call objc methods from python code.