From 00d4918dd4afc6961619d94ed29ffb364024219b Mon Sep 17 00:00:00 2001 From: tianfenghan Date: Mon, 15 Jan 2024 18:37:22 +0800 Subject: [PATCH] add examples --- examples/class/animal.py | 11 +++++++++++ examples/class/test.php | 20 ++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 examples/class/animal.py create mode 100644 examples/class/test.php diff --git a/examples/class/animal.py b/examples/class/animal.py new file mode 100644 index 0000000..aef88b8 --- /dev/null +++ b/examples/class/animal.py @@ -0,0 +1,11 @@ +import abc + + +class Animal(abc.ABC): + def __init__(self, name, age): + self.name = name + self.age = age + + def speak(self, name): + print("Animal speak") + pass diff --git a/examples/class/test.php b/examples/class/test.php new file mode 100644 index 0000000..bbce10c --- /dev/null +++ b/examples/class/test.php @@ -0,0 +1,20 @@ +path->append('.'); + +$types = PyCore::import('types'); + +$Animal = PyCore::import('animal')->Animal; +$Dog = $types->new_class( + 'Dog', + (PyCore::tuple([$Animal])), + [] +); + +$dog = $Dog('狗', 1); +$dog->speak = $types->MethodType(function ($self, $name) use ($Animal, $Dog) { + PyCore::print("My name is {$self->name}, age is {$self->age}"); + $super = PyCore::super($Dog, $self); + $super->speak('dog'); +}, $dog); +$dog->speak('哈士奇');