• 多态
class Animal(object):
def run(self):
print('animal is running') class Dog(Animal):
def run(self):
print('Dog run fast') class Rabbit(Animal):
def run(self):
print('Rabbit jump...') class Cat(Animal):
pass class Timer(object):
def run(self):
print('the time is running')

多态:同一种类型,不同的表现形式

def runTwice(animal):
animal.run()
animal.run() a = Animal()
rabbit = Rabbit() runTwice(a)
runTwice(rabbit)

鸭子类型

tm = Timer()
runTwice(tm)

限制实例属性

只允许由'name' 'age'属性

class Person(object):
__slots__ = ('name', 'age')
per1 = Person()
per1.name = '小明'
print(per1.name)
per1.height = 167 # 不允许
class Student(object):
def __init__(self, age):
self.__age = age
•def setScore(self, score):
if 0 <= score <= 100:
self.__score = score
return 'ok'
else:
return 'error' def getScore(self):
return self.__score
•@property # 访问器 可以单独存在
def score(self):
print('getter is called')
return self.__score @score.setter # 设置器 不单独存在,一定要有property
def score(self, score):
print('setter is called')
if 0 <= score <= 100:
self.__score = score
return 'ok'
else:
return 'error' @ property
def age(self):
return self.__age s1 = Student(20)

s1.score = 100
print(s1.score)
print(s1.age)

Python_day8的更多相关文章

随机推荐

  1. NE76003单片机调试DS18B20 步骤

    一.硬件部分 GND脚接地: DQ脚接P03,外加4K7上拉电阻: VCC脚接3.3v供电: 二.软件部分 1.配置P03为准准双向 IO类型: void Init_power_gpio(void){ ...

  2. 安装USB驱动时报错“无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动”

    今天在安装一个USB设备的时候报错“Windows已找到设备的驱动程序软件,但在试图安装它时遇到错误”. 这个错误的描述是“无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动”. 事实上,这个 ...

  3. python学习Day6 元组、字典、集合set三类数据用法、深浅拷贝

    一.深浅拷贝 1.  值拷贝 ls1 = ls2  不开辟空间,指针跟着走.(直接将ls1中存放的地址拿过来,内存中不会开辟新的空间,所以你怎么变,我也跟着变.)(ls1内部的所有类型的值发生改变,l ...

  4. tensorflow 查看模型输入输出saved_model_cli show --dir ./xxxx --all

    saved_model_cli show --dir ./xxxxxxxx --all 可以查看模型的输入输出,比如使用tensorflow export_model_inference.py 输出的 ...

  5. fair scheduler配置

    <property>    <name>yarn.resourcemanager.scheduler.class</name>    <value>or ...

  6. pl/sql developer 问题总结

    问题1,出现NLS_LANG和字符集(Character set)问题 安装完PL/SQL后打开,遇到如图问题. 原因:这是因为系统没有设置NLS_LANG系统变量. 解决方法:有两种方式查看. 1. ...

  7. Android辅助开发工具合集

    https://github.com/389273716/android-skill-summary/blob/master/开发工具使用指南/辅助开发工具.md

  8. 天坑!c++调用python,遭遇R6034问题

    起源: AllMyTube下载核心,是c#组件调用c++dll,在dll中初始化Python运行环境.在工作目录有msvcr90.dll文件时,程序运行会弹出如下错误: R6034. -------- ...

  9. JVM学习01:内存结构

    JVM学习01:内存结构 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. 内存结构知识要点Xmind梳理 案例分析 分析1 package com.h ...

  10. 2018-2019-2 20165315《网络攻防技术》Exp5 MSF基础应用

    2018-2019-2 20165315<网络攻防技术>Exp5 MSF基础应用 目录 一.实验内容 二.实验步骤 1.一个主动攻击实践 ms08_067(成功) 2.一个针对浏览器的攻击 ...