Это уровни доступа. Изначально все атрибуты в питоне имеют доступ public
Изначально все атрибуты в питоне имеют доступ public. Мы можем обращаться к ним вне класса. Но это небезопасно, потому что могут утекать данные клиентов.
Использование одного нижнего подчеркивания _ делает атрибуты с уровнем доступа protected. С точки зрения питона это ничем не отличается от privat, но на уровне соглашения между разработчиками, такие атрибуты лучше не вызывать вне класса
Это 2 нижних подчеркивания, в этом случае сам python выдаст ошибку если мы будем обращаться вне класса к ним.
class BankAccount:
def __init__(self, name, balance, passport):
self.name = name
self._balance = balance
self.__passport = passport
alex = BankAccount("alex", 132321, 2312312)
print(alex.name) # alex
print(alex._balance) # 132321
print(alex.__passport) # Traceback
# Traceback (most recent call last):
# File "/Users/admin/Dev/ыщиуы/main.py", line 13, in <module>
# print(alex.__passport)
# AttributeError: 'BankAccount' object has no attribute '__passport'