Definitely raise TypeError, not try to force automatically. Usually I would be conservative in saying that something is “pythonic” or not - this is one of those words that really just means “the speaker thinks it's good,” but if it means something in general, it should refer to adhering to Zen of Python , in which case it is saying 12: "In the face of ambiguity, give up the temptation to guess."
, , Decimal s, Fraction s? str repr ? " (" 10 ") " 10 ", Decimal? , , , , , dicts Python? , , , , ?
, , , , Python. (Dictum 8: " , ".) , , , , , . (Dictum 9: " " ). , , , , , - , ( , , !) .