python - 在此类的方法中使用类变量
问题描述
当有人将钱存入我的银行时,我正在尝试更新类变量的值。
我的代码
class Bank_account():
bank_balance = 0
def __init__(self, name_holder, id, balance):
self.name = name_holder
self.id = id
self.balance = balance
bank_balance += balance
def cash_in(self, cash):
self.balance += cash
bank_balance += cash
def with_draw(self, draw):
if self.balance < draw or bank_balance < draw:
print('Error')
else:
print('Here your money!')
John = Bank_account('John', 123456, 2.10**6)
Smith = Bank_account('Smith', 111111, 3.10**6)
Michael = Bank_account('Michael', 123123, 4.10**6)
Bank_account.bank_balance
我的结果
UnboundLocalError Traceback (most recent call last)
<ipython-input-30-0a83e2bc19e8> in <module>
19 print('Here your money!')
20
---> 21 Quang = Bank_account('Quang', 123456, 2.10**6)
22 Kien = Bank_account('Kien', 111111, 3.10**6)
23 Trung = Bank_account('Trung', 123123, 4.10**6)
<ipython-input-30-0a83e2bc19e8> in __init__(self, name_holder, id, balance)
7 self.id = id
8 self.balance = balance
----> 9 bank_balance += balance
10
11 def cash_in(self, cash):
UnboundLocalError: local variable 'bank_balance' referenced before assignment
谁能告诉我如何使用类变量并解释我的错误?
解决方案
class Bank_account():
def __init__(self, name_holder, id, balance,bank_balance=0):
self.name = name_holder
self.id = id
self.balance = balance
self.bank_balance = balance
def cash_in(self, cash):
self.balance += cash
self.bank_balance += cash
def with_draw(self, draw):
if self.balance < draw or bank_balance < draw:
print('Error')
else:
print('Here your money!')
John = Bank_account('John', 123456, 2.10**6)
Smith = Bank_account('Smith', 111111, 3.10**6)
Michael = Bank_account('Michael', 123123, 4.10**6)
print(John.bank_balance)
我认为这就是你想要做的。
推荐阅读
- python - 使用python提取主图像中存在的所有子图像的坐标
- php - php中的未知数据库TABLE_NAME
- javascript - 如何使用从与 NodeJS 的 mysql 连接保存的变量到异步函数?
- python - 如何在一张图上绘制来自多个 csv 文件的数据
- spring - InvalidDataAccessApiUsageException:第一个结果值不能为负
- java - 在数组JAVA中搜索后从数组中丢失对象引用
- python - 实现类数组,并重新发明常见的列表方法,如 append
- reactjs - 测试时,我应该如何在具有状态钩子的功能性有状态组件中模拟状态?
- python - 如何使.exe文件压缩python
- java - 使用 Instrumentation 的 Java 对象大小:运行代理 jar 时打开 zip 文件时出错或缺少 JAR 清单