разница между переменными экземпляра и глобальными переменными, объявленными в __init__ функции

#python #class #global-variables

Вопрос:

 class Car(object):  def __init__(self):  self.color = 'red' #var1  global color   color= 'red' #var2  

В чем разница между первой и второй переменными?

Комментарии:

1. self.color является атрибутом self . global color = red это синтаксическая ошибка.

2. Я исправил синтаксис, пожалуйста, проверьте сейчас

3. Ну, один является атрибутом экземпляра Car , другой-нет.

4. Установите для них разные значения, создайте экземпляр c = Car() , а затем сравните color с c.color .

5. @HarryPlotter Если вы собираетесь исправлять орфографические и грамматические ошибки, не нарушайте при этом сам код.

Ответ №1:

Рассмотрим этот код:

 color = 'blue'   class Car(object):  def __init__(self):  self.color = 'green'  global color   color= 'red'  print(color) # prints blue car = Car() print(car.color) # prints green print(color) # prints red