diff --git a/README.adoc b/README.adoc index 5826418..c784f15 100644 --- a/README.adoc +++ b/README.adoc @@ -18482,6 +18482,7 @@ Examples: * link:rootfs_overlay/lkmc/python/hello.py[]: hello world * `time` ** link:rootfs_overlay/lkmc/python/count.py[]: count once every second +** link:rootfs_overlay/lkmc/python/iter_method.py[]: how to implement `__iter__` on a class ===== Build and install the interpreter diff --git a/rootfs_overlay/lkmc/python/iter_method.py b/rootfs_overlay/lkmc/python/iter_method.py new file mode 100755 index 0000000..14acac6 --- /dev/null +++ b/rootfs_overlay/lkmc/python/iter_method.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 + +# https://cirosantilli.com/linux-kernel-module-cheat#python + +class MyClass(): + def __init__(self, mylist): + self.mylist = mylist + def __iter__(self): + return iter(self.mylist) + +mylist = [1, 3, 2] +i = 0 +for item in MyClass(mylist): + assert item == mylist[i] + i += 1