Python学习之旅(十九)
程序员文章站
2022-12-23 08:18:57
Python基础知识(18):面向对象高级编程 使用__slots__:限制实例的属性,只允许实例对类添加某些属性 (1)实例可以随意添加属性 (2)某个实例绑定的方法对另一个实例不起作用 (3)给类绑定方法市所有类都绑定了该方法,且所有实例都可以调用该方法 用__slots__定义属性反对这个类的 ......
python基础知识(18):面向对象高级编程
使用__slots__:限制实例的属性,只允许实例对类添加某些属性
(1)实例可以随意添加属性
(2)某个实例绑定的方法对另一个实例不起作用
(3)给类绑定方法市所有类都绑定了该方法,且所有实例都可以调用该方法
用__slots__定义属性反对这个类的实例起作用,但对这个类的子类是不起作用的
>>> class student(object): __slots__=("name","age") >>> s=student() >>> s.name="jack" >>> s.score=90 traceback (most recent call last): file "<pyshell#43>", line 1, in <module> s.score=90 attributeerror: 'student' object has no attribute 'score'
使用@property:把方法变成属性来调用
@property是python内置的装饰器
>>> class student(object): @property def test(self): return self.name @test.setter def test(self,name): self.name=name >>> s=student() >>> s.test="alice" >>> print(s.test) alice
多重继承
通过多重继承,子类可以同时获得多个父类的所有功能
>>> class run(object): def run(): print("i can run.") >>> class fly(object): def fly(): print("i can fly.") >>> class swim(object): def swim(): print("i can swim.") >>> class duck(run,fly,swim): pass
mixln:允许使用多重继承的设计
上一篇: 【读书笔记】ES6 Class的基本语法
下一篇: OpenLayer实现路径运动