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的更多相关文章

  1. python第三十一课--递归(2.遍历某个路径下面的所有内容)

    需求:遍历某个路径下面的所有内容(文件和目录,多层级的) import os #自定义函数(递归函数):遍历目录层级(多级) def printDirs(path): dirs=os.listdir( ...

  2. 孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库

    孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库服 ...

  3. Python第五十一天 python2升级为python3

    Python第五十一天  python2升级为python3 公司使用的生产环境系统是centos7,所以这里以centos7系统为基础,讲解将python2升级为python3的方法 centos7 ...

  4. python第五十一天----线程,Event,队列

    进程与线程的区别: 线程==指令集,进程==资源集  (线程集) 1.同一个进程中的线程共享内存空间,进程与进程之间是独立的 2.同一个进程中的线程是可以直接通讯交流的,进程与间通讯必需通过一个中间的 ...

  5. python第三十一课--递归(1.简单递归函数的定义和使用)

    演示:简单递归函数的定义和使用 需求:1~5进行累加 找寻关系:函数名:mySum(num) 1).找临界点:运算到1(加到1)就结束了 2). 第一次:5+mySum(5-1)-->retur ...

  6. python第五十三课——time模块

    1.time.datatime.calendar模块的引入讲解(重视) Unix时间戳(timestamp):返回的是数值类型数据(float值), 概念:记录了从1970年00点00分00秒至今的秒 ...

  7. python第五十课——多态性

    animal.py class Animal: def __init__(self,name): self.name = name def eat(self): pass dog.py from an ...

  8. python第三十一课--递归(3.递归的弊端)

    演示递归的弊端: def mySum(num): if num == 1: return 1 return num+mySum(num-1) mySum(998) [注意]:递归可以解决绝大多数循环能 ...

  9. JAVA学习第五十一课 — IO流(五)流的操作基本规律

    转换流: InputStreamReader:字节到字符的桥梁.解码 OutputStreamWriter:字符到字节的桥梁.编码 流的基本规律 1.明白源和汇 源:InputStream.Reade ...

随机推荐

  1. pip更新到18版本后使用pycharm更新问题:module 'pip' has no attribute 'main'

    今天升级pip到18.0版本后更新模块时出现错误 分析报错信息可知,问题出在packaging_tool.py文件的213行和109行,找到具体的代码,如下 # 109行函数 def do_insta ...

  2. SQL SERVER 如何声明一个变量

    DECLARE @i AS INT; ; GO 或者 ; GO 表表达式形式 ); SET @empname = (SELECT firstname + N' ' + lastname FROM HR ...

  3. Mongodb的基本语法

    前段时间工作上面由于没有多少事所以玩了玩mongodb,学习了它的基本语法,然后现在在这里做一个简单的总结. 1.我是在win平台上面,启动的话比较麻烦,所以我就简单的把启动过程做了个批处理文件 启动 ...

  4. That Nice Euler Circuit(LA3263+几何)

    That Nice Euler Circuit Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu D ...

  5. 设计模式-享元模式(FlyWeight)

    一.概念 享元模式是对象的结构模式,它以共享的方式高效的支持大量的细粒度对象,减少对象的数量,并达到节约内存的目的. 享元对象能够做到共享的关键,主要是区分了内部状态和外部状态,内部状态是对象是在建立 ...

  6. JAVA的高并发基础认知 二

    一.JAVA高级并发 1.5JDK之后引入高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发 ...

  7. JavaScript函数箭头的优势在哪里

    译者按: 看上去只是语法的变动,其实也影响了this的作用域. 原文: JavaScript: Arrow Functions for Beginners 译者: Fundebug 为了保证可读性,本 ...

  8. MAC MYSQ忘记密码重置方法

    网友的方法,记个笔记请勿转载. step1: 关闭mysql服务:  苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server) ...

  9. HappenBefore

    计算机芯片在操作指令的步骤: 1.获取指令 2.指令进行解码 3.去寄存器里取值 4.开始计算结果(操作) 5.将结果写会到寄存器中 执行代码的顺序可能与编写代码不一致,及虚拟机优化代码顺序,则为指令 ...

  10. MYSQL获取当前年、季、月、周第一天、最后一天的日期/时间戳

    因为做一些商场某个会员今年的消费分析,所以对sql中时间的获取进行了判断. 例如获取今年(即当前年的第一天到昨天0时之间)的消费总额. 如果需要时间戳转换,用UNIX_TIMESTAMP()函数. 一 ...