我想了解類變量和init之間的差異。我明白,類變量通常是靜態的,可以改變。Python類與實例變量|整數/列表
我想知道爲什麼當你打印變量賬戶後,它被Sam的實例改變了,它已經改變了David。
但是,無論何時你更新Sam的餘額,它都不會改變爲David。謝謝。
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.Balance',它將'BankAccount.Balance'與'append()'隱藏到現有列表中。即使'Sam.Balance + = 1000'仍然會隱藏'BankAccount.Balance',因爲'int'不可變。 – AChampion
使用'Sam.Balance = 1000',您正在創建新的實例變量。 –
當我在類中添加一個打印函數來打印全局變量平衡和self.Balance它們是相同的嗎?我對這部分有點困惑。 – Davidhall