#it's python 3.2.3
class point:
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, point):
return self.x == point.x and self.y == point.y
def __str__(self):
return 'point(%s, %s)' % (self.x, self.y)
def someFunc(point):
if point.x > 14: point.x = 14
elif point.x < 0: point.x = 0
if point.y > 14: point.y = 14
elif point.y < 0: point.y = 0
return point
somePoint = point(-1, -1)
print('ONE: %s' % somePoint)
if somePoint == someFunc(somePoint):
print('TWO: %s' % somePoint)
最初のprint()の後にsomePoint変数の割り当てがないことがわかります が、変数somePointはifステートメントの後に魔法のように変化します
このプログラムの出力は次のようになります
ONE: point(-1, -1)
しかし、それは
ONE: point(-1, -1)
TWO: point(0, 0)
誰かがsomePointが後に変わる理由を私に説明できますか
if somePoint == someFunc(somePoint):
調子?
私の英語が悪いならごめんなさい