I'm trying to learn the difference between class variables and init ones. I understand the class variables are usually static and can change.
I would like to know why when you print the Variable Accounts after it had been changed by the instance of Sam it has changed for David.
HOWEVER, whenever you update the balance for Sam, it does not change for David. Thank you.
class BankAccount:
Balance = 0
Accounts = []
Sam = BankAccount()
David = BankAccount()
print("Sam's Balance", Sam.Balance)
print("David's Balance", David.Balance)
print("")
print("Sam's Accounts", Sam.Accounts)
print("David's Accounts", David.Accounts)
Sam.Balance = 1000
Sam.Accounts.append("Sam's Personal Checking")
print("Sam's Balance", Sam.Balance)
print("David's Balance", David.Balance)
print("")
print("Sam's Accounts", Sam.Accounts)
print("David's Accounts", David.Accounts)
Sam.Balancethat hides theBankAccount.Balancevs.append()ing to the existing list. Even withSam.Balance += 1000would still hideBankAccount.Balancebecauseints are not mutable.Sam.Balance=1000you are creating new instance variable.