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 方法)相关推荐

  1. Python 入门 —— Python 面向对象:类的创建及其基本内置方法的使用

    Python 面向对象:类的创建及其基本内置方法的使用 首先了解一下什么是面向对象 面向过程: 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. ...

  2. Python面向对象中反射和双下的正确用法

    一.反射 反射:程序可以访问,检测和修改它本身状态或行为的一种能力(自省) python面向对象中的反射:通过字符串的形式操作对象相关的属性 python中的一切事物都是对象(都可以使用反射) 四个可 ...

  3. python面向对象编程的优点-Python 基础知识----面向对象编程

    一.面向对象编程介绍 面向过程编程: 核心是过程二字,过程指的是解决问题的步骤,即先做什么再干什么然后干什么. 基于该思想编写程序好比在设计一条流水线,是一种机械式的思维方式. 优点:复杂的问题流程化 ...

  4. python面向对象的特征_03 Python 关键点讲解:面向对象的机制

    本节开始讲解量化交易系统最基本的编程工具 Python 的关键知识点.我们经过调研发现,目前市面上量化交易相关的书籍.课程等教学产品多数从最基础的安装.语法.函数-开始介绍 Python 这个工具,我 ...

  5. python面向对象编程的优点-Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  6. python property作用_python中@property的作用和getter setter的解释

    @property作用: python的@property是python的一种装饰器,是用来修饰方法的. 我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同 ...

  7. linux下python编程实例_python实现linux下使用xcopy的方法

    本文实例讲述了python实现linux下使用xcopy的方法.分享给大家供大家参考.具体如下: 这个python函数模仿windows下的xcopy命令编写,可以用在linux下 #!/usr/bi ...

  8. python面向对象编程的优点-Python入门之面向对象编程(一)面向对象概念及优点

    概念 谈到面向对象,很多程序员会抛出三个词:封装.继承和多态:或者说抽象.一切都是对象之类的话,然而这会让初学者更加疑惑.下面我想通过一个小例子来说明一下 面向对象一般是和面向过程做对比的,下面是一个 ...

  9. python面向对象编程的优点-Python语言有哪些优点?

    2018年主流的十大编程语言中,Python排名第一,被广大使用者誉为"更美好"编程语言.Python语言自身的语言特点,使得他深受开发者的喜爱,那么Python语言到底有哪些优点 ...

最新文章

  1. html css 让元素居中显示,html – CSS:如何在居中元素周围对齐元素?
  2. velocity模板引擎 -- java.io.FileNotFoundException: velocity.log (Permission denied)
  3. 跟着老桂学ASP.NET Core 2.0
  4. linux怎么设置屏显示同步,linux设置同步时间
  5. Android lsof查看已打开文件
  6. 牛逼!国产开源的远程桌面火了,只有 9MB,支持自建中继器!
  7. 内网安全-隧道穿透漫游
  8. springboot学习笔记1——springboot初始化
  9. SQL分组统计-每个学科前三名
  10. Mac OS X 平台有哪些优秀应用可以将视频转成 GIF?Mac视频转gif软件推荐
  11. HTML期末学生作业~html+css+javascript仿猫眼电影在线网站[毕业设计]
  12. 手把手带你搭建一个简单的webpack脚手架(一)
  13. 实战 target 选择器,解放生产力
  14. Java锁与线程的那些“不可描述”的事儿
  15. h5 vue利用canvas实现手机签名并且可旋转功能
  16. Java中instanceof关键字的用法
  17. QKL123 | 区块链排行榜
  18. 电子琴节奏包制作_制作MIDI电子音乐离不开的三件“法宝”
  19. 【持续更新】数据库常用函数整理
  20. halcon三维检测启蒙1

热门文章

  1. win10改计算机用户名,win10如何改成自己想要的文件夹用户名?
  2. 5.2.4 std::atomic:指针运算
  3. ROS Kinetic 安装指南
  4. JavaScript(一)基本语法
  5. Mysql 引优化分析
  6. Softmax Derivation
  7. CUDA算法——Stream and Event
  8. 数据挖掘项目:银行信用评分卡建模分析(下篇)
  9. tf.transpose()函数(转)
  10. Cookie中的httponly的属性和作用