10.3 Controlling Access to Attributes

  • Pprevious example used attributes name and balance only to get the values of those attributes
  • Also can use those attributes to modify their values
In [1]:
from account import Account
In [2]:
from decimal import Decimal
In [3]:
account1 = Account('John Green', Decimal('50.00'))
In [4]:
account1.balance
Out[4]:
Decimal('50.00')
  • Set the balance attribute to an invalid negative value, then display the balance
In [5]:
account1.balance = Decimal('-1000.00')
In [6]:
account1.balance
Out[6]:
Decimal('-1000.00')

Encapsulation

  • A class’s client code is any code that uses objects of the class
  • Most object-oriented programming languages enable you to encapsulate (or hide) an object’s data from the client code
    • private data

Leading Underscore (_) Naming Convention

  • Python does not have private data
  • Use naming conventions to design classes that encourage correct use
  • By convention, Python programmers know that any attribute name beginning with an underscore (_) is for a class’s internal use only
  • Attributes whose identifiers do not begin with an underscore (_) are considered publicly accessible for use in client code

©1992–2020 by Pearson Education, Inc. All Rights Reserved. This content is based on Chapter 5 of the book Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and the Cloud.

DISCLAIMER: The authors and publisher of this book have used their best efforts in preparing the book. These efforts include the development, research, and testing of the theories and programs to determine their effectiveness. The authors and publisher make no warranty of any kind, expressed or implied, with regard to these programs or to the documentation contained in these books. The authors and publisher shall not be liable in any event for incidental or consequential damages in connection with, or arising out of, the furnishing, performance, or use of these programs.