"""
Yield returns a generator object
use next() to access the return value
If you attempt to invoke next() on a generator object that had already produced (yielded) all its values, it will throw StopIteration exception
It can yield multiple items as well (as shown in second example)
Yield returns a generator object
use next() to access the return value
If you attempt to invoke next() on a generator object that had already produced (yielded) all its values, it will throw StopIteration exception
It can yield multiple items as well (as shown in second example)
"""
################# Test1 #################
def test_yield():
yield 'hi'
if __name__ == '__main__':
a = test_yield()
print(a) #<generator object test_yield at 0x7ff2f0510c80>
val = next(a)
print(val) # hi
Output:
################# Test1 #################
def test_yield():
yield 'hi'
if __name__ == '__main__':
a = test_yield()
print(a) #<generator object test_yield at 0x7ff2f0510c80>
val = next(a)
print(val) # hi
Output:
hi
################# Test2 #################
# You can yield multiple values
def test_yield(name):
yield 'hi'
yield name
if __name__ == '__main__':
a = test_yield('John')
print(a) #<generator object test_yield at 0x7ff2f0510c85>
for item in a:
print(item)
################# Test2 #################
# You can yield multiple values
def test_yield(name):
yield 'hi'
yield name
if __name__ == '__main__':
a = test_yield('John')
print(a) #<generator object test_yield at 0x7ff2f0510c85>
for item in a:
print(item)
Output:
<generator object test_yield at 0x7f93f8066c80>
hi
John
No comments:
Post a Comment