类的高级用法示例

January 30, 2026

类的高级用法示例

本文档介绍类属性与实例属性、继承与多态、以及继承标准库类等进阶用法。示例来源:doc/pikapython.com/examples/Class/

模块简介

涵盖类/实例属性、__init__、子类重写方法、继承 PikaStdLib 等。内嵌示例:

class C:
    a = 1
    def __init__(self):
        self.a = 2
o = C()
print(o.a)

示例代码

类参数与属性(classpar1.py)

class Test:
    a = 1
    b = 'test'
    def __init__(self):
        self.a = 2
        self.b = 'pewq'

print(Test.a)
print(Test.b)

test = Test()
print(test.a)
print(test.b)

说明:Test.aTest.b 为类属性;__init__ 中赋值的 self.aself.b 为实例属性,实例化后访问的是实例属性(2 和 ‘pewq’)。

继承与多态(main.py)

# need core >= v1.4.0
import PikaStdLib

class people:
    def do_hi(self):
        print('hello i am people')
    def hi(self):
        self.do_hi()

class student(people):
    def do_hi(self):
        print('hello i am student')

class mymem(PikaStdLib.MemChecker):
    def mymax(self):
        print('mem used max: ' + str(self.getMax()) + ' kB')

p = people()
s = student()

p.hi()
s.hi()

mem = mymem()
mem.mymax()

说明:people 定义 do_hihistudent 继承并重写 do_hi,多态下 s.hi() 会调用子类的 do_himymem 继承 PikaStdLib.MemChecker 并扩展 mymax(),演示继承标准库类。运行需固件提供 PikaStdLib 且版本满足要求。

运行结果(预期)

  • 类属性输出:1test;实例属性输出:2pewq
  • main.py:先输出 “hello i am people”,再输出 “hello i am student”,最后输出当前最大内存占用(单位 kB)。

注意事项

  • 类属性被实例属性“遮蔽”时,通过实例访问到的是实例属性。
  • 继承 PikaStdLib 等模块中的类时,需确认设备固件已包含对应模块且 API 兼容。

相关链接