python第五十一课——__slots
2.__slots__:
作用:限制对象随意的动态添加属性
举例:
class Demo:
__slots__ = ('name','age','height','weight')
#实例化Demo对象
d = Demo()
#动态为d添加属性
d.name = 'abc'
d.age = 12
#可以动态添加的属性为:('name','age','height','weight')
#而sex不再范围内,所以执行代码报错了 --> AttributeError
# d.sex = '男'
print(d.name,d.age)
# print(d.sex)
演示__slots__属性的使用:
class Person:
__slots__ = ('name','age','height','weight')
pass #实例化Person对象
p=Person() #动态为对象添加属性
p.name='tom'
p.age=18
print(p.name,p.age) '''
以下代码有问题:AttributeError...
'''
print(p.__dict__) '''
尝试为p对象动态添加sex属性,但是sex并不是_slots_元组对象范围内的内容,
所以不被允许,报错:AttributeErro
''' p.sex='男'
print(p.sex) p.height=180.0
print(p.height)
返回目录
python第五十一课——__slots的更多相关文章
- python第三十一课--递归(2.遍历某个路径下面的所有内容)
需求:遍历某个路径下面的所有内容(文件和目录,多层级的) import os #自定义函数(递归函数):遍历目录层级(多级) def printDirs(path): dirs=os.listdir( ...
- 孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库
孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库服 ...
- Python第五十一天 python2升级为python3
Python第五十一天 python2升级为python3 公司使用的生产环境系统是centos7,所以这里以centos7系统为基础,讲解将python2升级为python3的方法 centos7 ...
- python第五十一天----线程,Event,队列
进程与线程的区别: 线程==指令集,进程==资源集 (线程集) 1.同一个进程中的线程共享内存空间,进程与进程之间是独立的 2.同一个进程中的线程是可以直接通讯交流的,进程与间通讯必需通过一个中间的 ...
- python第三十一课--递归(1.简单递归函数的定义和使用)
演示:简单递归函数的定义和使用 需求:1~5进行累加 找寻关系:函数名:mySum(num) 1).找临界点:运算到1(加到1)就结束了 2). 第一次:5+mySum(5-1)-->retur ...
- python第五十三课——time模块
1.time.datatime.calendar模块的引入讲解(重视) Unix时间戳(timestamp):返回的是数值类型数据(float值), 概念:记录了从1970年00点00分00秒至今的秒 ...
- python第五十课——多态性
animal.py class Animal: def __init__(self,name): self.name = name def eat(self): pass dog.py from an ...
- python第三十一课--递归(3.递归的弊端)
演示递归的弊端: def mySum(num): if num == 1: return 1 return num+mySum(num-1) mySum(998) [注意]:递归可以解决绝大多数循环能 ...
- JAVA学习第五十一课 — IO流(五)流的操作基本规律
转换流: InputStreamReader:字节到字符的桥梁.解码 OutputStreamWriter:字符到字节的桥梁.编码 流的基本规律 1.明白源和汇 源:InputStream.Reade ...
随机推荐
- 在Android项目中使用AspectJ
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/8888459.html 什么是AOP AOP是 Aspec ...
- mybatis mapper xml文件的导入方式和查询方式
mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...
- netty源码解解析(4.0)-8 ChannelPipeline的设计
io.netty.channel.ChannelPipeline 设计原理 上图中,为了更直观地展示事件处理顺序, 故意有规律地放置两种handler的顺序,实际上ChannelInboundHa ...
- Jenkins持续集成学习-Windows环境进行.Net开发4
目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...
- css布局------块元素水平垂直居中的四种方法
HTML <div class="parent answer-1"> <div></div></div> CSS .parent { ...
- pip更新到18版本后使用pycharm更新问题:module 'pip' has no attribute 'main'
今天升级pip到18.0版本后更新模块时出现错误 分析报错信息可知,问题出在packaging_tool.py文件的213行和109行,找到具体的代码,如下 # 109行函数 def do_insta ...
- C# 取得上月月头和月尾、上周的第一天和最后一天。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- java连接OPC之——Windows7 With SP1 网络OPC的DCOM配置
由于 OPC(OLE for Process Control)建立在 Microsoft 的 COM(COmponent Model)基础 上,并且 OPC 的远程通讯依赖 Microsoft 的 D ...
- 使用Swagger2时遇到的问题
Swagger2使用起来很简单,加一个@EnableSwagger2注解,并引入如下依赖就ok了 <dependency> <groupId>io.springfox</ ...
- Vue 系列之 渲染与事件处理
渲染相关 列表渲染 与 条件渲染 Vue 中的常见的渲染有 列表渲染 和 条件渲染 所谓条件渲染,则是通过添加一定的逻辑条件来进行 Dom 元素的操作 v-if v-else v-else-if &l ...