2 python language-features function generator
我正在使用生成器函数和类的私有函数.我想知道
以下是我的方案的示例片段.
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()
Run Code Online (Sandbox Code Playgroud)
我被烧了,花了一些时间试图弄清楚为什么函数没有被调用.我终于发现我正在屈服于我不想进入的功能.
"生成器"不是语言特征,而是"产生"功能的名称.屈服几乎总是合法的.对于Python来说,没有任何方法可以知道你并不是"意味着"从某个函数中获得收益.
本PEP http://www.python.org/dev/peps/pep-0255/讨论了生成器,可以帮助您更好地理解背景.
我同情你的经验,但编制者无法弄清楚你"为他们做什么",只是你实际告诉他们要做的事情.
| 归档时间: |
|
| 查看次数: |
1024 次 |
| 最近记录: |