Python 面向对象 —— __slots__ 与 @property(python 下的 getter、setter 方法)
1. 使用 __slots__ 限制 class 的属性
class Student(object):__slots__ = {'name', 'age'}# 集合# 也只允许绑定 name,age 这两个属性# 如果有新的属性想要帮顶,则会抛出 AttributeError
- (1)
__slots__
:定义的属性仅对当前类起作用,对继承的子类不起作用 - (2)除非在子类也定义
__slots__
,子类允许定义的属性就是自身的__slots__
并上 父类的__slots__
2. @property:作为属性的方法
class Student(object):@propertydef score(self):return self._score@score.setterdef score(self, value):if not isinstance(value, int):raise TypeError()if value < 0 or value > 100:raise ValueError()self._score = value
- (1)@property:讲成员函数作为成员变量使用,含义为 getter
- (2)@.setter:执行真正的类型检查
class Person(object):@propertydef birth(self):return self._birth@birth.setterdef birth(self, value):if not isinstance(value, int):raise TypeError()if value < 0:raise ValueError()self._birth = value@propertydef age(self):return 2016 - self._birth
- (1)birth:可读写
- (2)age:只读
Python 面向对象 —— __slots__ 与 @property(python 下的 getter、setter 方法)相关推荐
- Python 入门 —— Python 面向对象:类的创建及其基本内置方法的使用
Python 面向对象:类的创建及其基本内置方法的使用 首先了解一下什么是面向对象 面向过程: 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. ...
- Python面向对象中反射和双下的正确用法
一.反射 反射:程序可以访问,检测和修改它本身状态或行为的一种能力(自省) python面向对象中的反射:通过字符串的形式操作对象相关的属性 python中的一切事物都是对象(都可以使用反射) 四个可 ...
- python面向对象编程的优点-Python 基础知识----面向对象编程
一.面向对象编程介绍 面向过程编程: 核心是过程二字,过程指的是解决问题的步骤,即先做什么再干什么然后干什么. 基于该思想编写程序好比在设计一条流水线,是一种机械式的思维方式. 优点:复杂的问题流程化 ...
- python面向对象的特征_03 Python 关键点讲解:面向对象的机制
本节开始讲解量化交易系统最基本的编程工具 Python 的关键知识点.我们经过调研发现,目前市面上量化交易相关的书籍.课程等教学产品多数从最基础的安装.语法.函数-开始介绍 Python 这个工具,我 ...
- python面向对象编程的优点-Python面向对象编程——总结面向对象的优点
Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...
- python property作用_python中@property的作用和getter setter的解释
@property作用: python的@property是python的一种装饰器,是用来修饰方法的. 我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同 ...
- linux下python编程实例_python实现linux下使用xcopy的方法
本文实例讲述了python实现linux下使用xcopy的方法.分享给大家供大家参考.具体如下: 这个python函数模仿windows下的xcopy命令编写,可以用在linux下 #!/usr/bi ...
- python面向对象编程的优点-Python入门之面向对象编程(一)面向对象概念及优点
概念 谈到面向对象,很多程序员会抛出三个词:封装.继承和多态:或者说抽象.一切都是对象之类的话,然而这会让初学者更加疑惑.下面我想通过一个小例子来说明一下 面向对象一般是和面向过程做对比的,下面是一个 ...
- python面向对象编程的优点-Python语言有哪些优点?
2018年主流的十大编程语言中,Python排名第一,被广大使用者誉为"更美好"编程语言.Python语言自身的语言特点,使得他深受开发者的喜爱,那么Python语言到底有哪些优点 ...
最新文章
- html css 让元素居中显示,html – CSS:如何在居中元素周围对齐元素?
- velocity模板引擎 -- java.io.FileNotFoundException: velocity.log (Permission denied)
- 跟着老桂学ASP.NET Core 2.0
- linux怎么设置屏显示同步,linux设置同步时间
- Android lsof查看已打开文件
- 牛逼!国产开源的远程桌面火了,只有 9MB,支持自建中继器!
- 内网安全-隧道穿透漫游
- springboot学习笔记1——springboot初始化
- SQL分组统计-每个学科前三名
- Mac OS X 平台有哪些优秀应用可以将视频转成 GIF?Mac视频转gif软件推荐
- HTML期末学生作业~html+css+javascript仿猫眼电影在线网站[毕业设计]
- 手把手带你搭建一个简单的webpack脚手架(一)
- 实战 target 选择器,解放生产力
- Java锁与线程的那些“不可描述”的事儿
- h5 vue利用canvas实现手机签名并且可旋转功能
- Java中instanceof关键字的用法
- QKL123 | 区块链排行榜
- 电子琴节奏包制作_制作MIDI电子音乐离不开的三件“法宝”
- 【持续更新】数据库常用函数整理
- halcon三维检测启蒙1