我正在使用类的生成器函数和私有函数。我想知道
- 为什么在 __someFunc 中产生(在我的一种情况下是偶然的)时,这个函数似乎不是从 __someGenerator 中调用的。另外,在提及语言的这些方面时,我想使用什么术语?
- python解释器可以警告这种情况吗?
下面是我的场景的示例片段。
class someClass():
def __init__(self):
pass
#Copy and paste mistake where yield ended up in a regular function
def __someFunc(self):
print "hello"
#yield True #if yielding in this function it isn't called
def __someGenerator (self):
for i in range(0, 10):
self.__someFunc()
yield True
yield False
def someMethod(self):
func = self.__someGenerator()
while func.next():
print "next"
sc = someClass()
sc.someMethod()
我对此感到很恼火,并花了一些时间试图弄清楚为什么一个函数没有被调用。我终于发现我正在屈服于我不想参与的功能。