(a=b) is a logical expression, like (a>b). It evaluates to True or False.
So res=a=hi(i), which is the same as res = (a=hi()), assigns either True or False to res.
It doesn't assign anything to a, it just makes a comparison.
Note that True is the constant value 1, and False is 0.
So res=a=hi(i), which is the same as res = (a=hi()), assigns either True or False to res.
It doesn't assign anything to a, it just makes a comparison.
Note that True is the constant value 1, and False is 0.