我将首先尝试为您清除有关类和对象的一些困惑。让我们看一下这段代码:
>>> class Bank(): # let's create a bank, building ATMs... crisis = False... def create_atm(self) :... while not self.crisis :... yield "$100"
那里的评论有些欺骗性。上面的代码没有“创建”银行。它定义了什么是银行。银行是一种具有称为属性
crisis和功能的东西
create_atm。这就是上面的代码所说的。
现在,让我们实际创建一个银行:
>>> x = Bank()
在那里,
x现在有一家银行。
x具有属性
crisis和功能
create_atm。调用
x.create_atm();在巨蟒与调用
Bank.create_atm(x);,所以现在
self指
x。如果添加另一个银行
y,呼叫
y.create_atm()将知道查看
y危机的价值,而不是
x因为该函数
self中的
y。
self只是一个命名约定,但坚持使用是很好的。仍然值得指出的是,上面的代码等效于:
>>> class Bank(): # let's create a bank, building ATMs... crisis = False... def create_atm(thisbank) :... while not thisbank.crisis :... yield "$100"



