#python #python-3.x
#python #python-3.x
Вопрос:
Я определил 3 атрибута (общедоступный, частный и защищенный) и могу получить доступ ко всем из них извне. Как мне предотвратить доступ?
class Speed:
def __init__(self):
self.public_speed = 10
self._protected_speed = 50
self.__private_speed = 80
s = Speed()
s.public_speed = 20
print(s.public_speed)
s._protected_speed = 60
print(s._protected_speed)
s.__private_newSpeed = 90
print(s.__private_speed)
В результате:
20
60
90
Комментарии:
1. В Python нет закрытых или защищенных атрибутов, и вы просто предотвращаете доступ, не обращаясь к нему.
2. А еще вы пробовали печатать
s.__private_speed
?3. Почему вы хотите запретить доступ? И запретить доступ к кому? Что вы ожидаете получить обратно, если ограниченный пользователь пытается получить к ним доступ?
4. @Brendan. H Я предполагаю, что он исходит из языка программирования, такого как Java, где вы это делаете.
5. @KlausD. Но я могу получить к ним доступ. правильно? Как мне ограничить доступ к переменной?
Ответ №1:
Если вы просто хотите контролировать, чтобы переменные не изменялись, я предлагаю вам использовать magic funcation __setattr__()
.
Если вы хотите, чтобы люди не видели переменных. Python не может этого сделать.