2012-07-01 3 views
0

Возможно глупый вопрос, но я больше привык к Java и любит, и, таким образом, не понимаю, почему я могу это сделать:Почему я могу получить доступ к несуществующей переменной?

class A: 
    def __init__(self): 
     pass 

a = A() 
a.description = "whyyy" 

print a.description 

И у него распечатать whyyy вместо того чтобы дать мне ошибку.

ответ

0

Переменные весны возникают путем присвоения значения, и они автоматически уничтожаются, когда они выходят за рамки.

Для объектов вы можете добавлять новые поля динамически во время выполнения. Обратите внимание, что это не изменит описание класса. Только текущий экземпляр.

class A: 
    def __init__(self): 
     pass 

a = A() 
a.description = "whyyy" 

print a.description 

b = A() 

print b.description # Should return an error 
2

Поскольку объекты Python являются динамическими - им не требуется следовать жесткой схеме.

Создание экземпляра класса дает вам объект, который уже имеет определенные вещи, но вам разрешено динамически добавлять другие вещи в этот экземпляр; вы не ограничены первоначальным определением класса.

Смежные вопросы