Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Yksityisten Attribuuttien Määrittely | Kapselointi
Olio-ohjelmointi Pythonissa

bookYksityisten Attribuuttien Määrittely

Pyyhkäise näyttääksesi valikon

Yksityiset attribuutit edustavat vahvinta tietosuojan tasoa Pythonin kapselointimallissa. Käyttämällä kahta alaviivaa otetaan käyttöön Pythonin nimitunkkausmekanismi, joka muuntaa arkaluonteiset attribuutit lähes saavuttamattomiksi tunnisteiksi. Tämä tarjoaa vahvan suojan tahatonta manipulointia vastaan ja auttaa luomaan turvallisia, ammattimaisia luokkarakenteita.

123456789101112131415161718192021
class BankAccount: def __init__(self, owner, balance): self.owner = owner # Public attribute self.__balance = balance # Private attribute def deposit(self, amount): if amount > 0: self.__balance += amount print(f"Deposited {amount}. New balance: {self.__balance}") else: print("Deposit amount must be positive.") def withdraw(self, amount): if 0 < amount <= self.__balance: self.__balance -= amount print(f"Withdrew {amount}. New balance: {self.__balance}") else: print("Invalid withdrawal amount.") def get_balance(self): return self.__balance
copy
Note
Huomio

Vaikka yksityisiin attribuutteihin voidaan teknisesti päästä käsiksi niiden tunkattujen nimien kautta, tämä rikkoo kapselointia eikä sitä tulisi koskaan käyttää tuotantokoodissa.

Yksityinen attribuutti, kuten __balance luokassa BankAccount, nimetään automaattisesti uudelleen muotoon _BankAccount__balance nimimuunnoksen avulla. Tämä vaikeuttaa suoraa pääsyä ja estää ulkoista käyttöä.

Yksityiset attribuutit suojaavat herkkiä tilatietoja ja varmistavat, että vuorovaikutus tapahtuu vain tarkistettujen julkisten metodien kautta. Luokissa kuten Wallet tai BankAccount tiedot, kuten saldo, PIN-koodi ja tapahtumahistoria, pysyvät yksityisinä, kun taas metodit kuten deposit(), withdraw() ja authenticate() valvovat sääntöjä ja ylläpitävät turvallisuutta.

question mark

Mikä on yksityisten attribuuttien päätarkoitus Pythonissa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 5. Luku 2
some-alt