From 4477b1b941b578275d5fb3ae58b7e211edea4ae7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciro=20Santilli=20=E5=85=AD=E5=9B=9B=E4=BA=8B=E4=BB=B6=20?= =?UTF-8?q?=E6=B3=95=E8=BD=AE=E5=8A=9F?= Date: Fri, 26 Jun 2020 01:00:00 +0000 Subject: [PATCH] python: iter_method --- README.adoc | 1 + rootfs_overlay/lkmc/python/iter_method.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100755 rootfs_overlay/lkmc/python/iter_method.py 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