首先,这是我的测试代码,我使用的是Python3.2.x:
class account:
def __init__(self):
pass
class bank:
def __init__(self):
self.balance = 100000
def balance(self):
self.balance
def whitdraw(self, amount):
self.balance -= amount
def deposit(self, amount):
self.balance += amount
当我这样做时:
a = account()
a.bank.balance
我希望返回balance的值,而不是得到函数balance,这是为什么?当我这样做时,它返回余额的值:
class bank:
def __init__(self):
self.balance = 100000
def balance(self):
self.balance
def whitdraw(self, amount):
self.balance -= amount
def deposit(self, amount):
self.balance += amount
a = bank()
a.balance
所以我想知道这是为什么,如果有人能想出一种方法,让我在嵌套版本中获得平衡的价值,那就太好了。
a.bank
是类(不是实例),因为您从未在a
上创建过银行的实例。所以如果a.bank
是一个类,a.bank.balance
是绑定到该类的方法。但是,这是有效的:
当然,当您显示没有嵌套类的工作代码时,它确实回避了这样一个问题:为什么要使用嵌套类。我认为非嵌套版本要干净得多。
有几个问题:
balance
。balance()
中缺少return
语句。balance()
对bank
的实例操作。a.bank.balance
中没有实例:这里,a.bank
引用内部类本身。我的代码版本,带有注释:
相关问题 更多 >
编程相关推荐