Я пытаюсь объяснить причину необходимости переменных экземпляра и использую self
.Итак, я придумал следующий пример.Однако, все идет не так, как я думал, ха-ха.Я обратился ко всем вам с просьбой ответить на мой вопрос: хотя я изменяю переменную класса, почему последнее утверждение print с x.one
также не печатает -1
?
class example():
one = 1
two = 2
# Creating 2 'example' objects, x and y
x = example()
y = example()
print("x is: ", x.one, "y is: ", y.one) # output: x is 1, y is 1
# From the print statement, we'll see that changing one class object does not affect another class object
x.one = 0
print("x is: ", x.one, "y is: ", y.one) # output: x is 0, y is 1
# But what if we changed the class itself?
example.one = -1
print("x is: ", x.one, "y is: ", y.one) # output: x is 0, y is -1
Я предполагаю, что это как-то связано с тем, что я изменил значение x.one
в приведенном выше блоке, что делает x.one
, возможно, новым местом в памяти вместо ссылки на местоположение example.one
в памяти.
Если бы вы могли дать мне более подробную причину, я был бы очень признателен за это и смог бы передать знания моему ученику.