is_integer is certainly the more pythonic way. It is more readable and it may also handle other aspects, given the datatype that implements the function.
Still you need to make sure, that the input type implements is_integer. (this is also true for (val%1), thus is_integer is certainly the better choice.)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…