클래스 변수와 것의 차이를 배우려고합니다. 클래스 변수는 대개 정적이며 변경 될 수 있음을 이해합니다.파이썬 클래스 대 인스턴스 변수 | 정수 /리스트
가변 계정을 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)
기존 목록에'BankAccount.Balance' 대'append()'를 숨기는'Sam.Balance'라는 새로운 변수를 바인딩하고 있습니다. 'int'가 변경 가능하지 않기 때문에'Sam.Balance + = 1000'을 사용해도 BankAccount.Balance를 숨길 수 있습니다. – AChampion
'Sam.Balance = 1000'으로 새로운 인스턴스 변수를 생성하고 있습니다. –
클래스 내에서 인쇄 기능을 추가하여 전역 변수 잔액과 self.Balance를 인쇄했을 때 그들은 동일 했습니까? 나는 그 부분에 대해 약간 혼란 스럽다. – Davidhall