python编程:__slots__限制class的属性

简介: python编程:__slots__限制class的属性

__slots__限制class的属性


__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的


代码示例

# -*- coding: utf-8 -*-
# @File    : slots_demo.py
# @Date    : 2018-05-29
class Dog(object):
    def __init__(self, name):
        self.name = name
class Cat(object):
    __slots__ = ["name"]
    def __init__(self, name):
        self.name = name
if __name__ == '__main__':
    d = Dog("dog")
    d.age = 23
    print(d.age)
    # 23
    c = Cat("cat")
    c.age = 24
    # AttributeError: 'Cat' object has no attribute 'age'
相关文章
|
2天前
|
网络协议 Unix Python
Python编程-----网络通信
Python编程-----网络通信
8 1
|
2天前
|
JSON 数据格式 开发者
pip和requests在Python编程中各自扮演着不同的角色
【5月更文挑战第9天】`pip`是Python的包管理器,用于安装、升级和管理PyPI上的包;`requests`是一个HTTP库,简化了HTTP通信,支持各种HTTP请求类型及数据交互。两者在Python环境中分别负责包管理和网络请求。
31 5
|
2天前
|
Python
python属性错误(AttributeError)
【5月更文挑战第2天】python属性错误(AttributeError)
9 1
|
2天前
|
存储 Python 容器
Python高级编程
Python集合包括可变的set和不可变的frozenset,用于存储无序、不重复的哈希元素。创建集合可使用{}或set(),如`my_set = {1, 2, 3, 4, 5}`。通过add()添加元素,remove()或discard()删除元素,如`my_set.remove(3)`。
14 0
|
2天前
|
测试技术 Python
Python模块化方式编程实践
【5月更文挑战第5天】Python模块化编程提升代码质量,包括:定义专注单一任务的模块;使用`import`导入模块;封装函数和类,明确命名便于重用;避免全局变量降低耦合;使用文档字符串增强可读性;为每个模块写单元测试确保正确性;重用模块作为库;定期维护更新以适应Python新版本。遵循这些实践,可提高代码可读性、重用性和可维护性。
43 2
|
2天前
|
测试技术 调度 索引
python编程中常见的问题
【4月更文挑战第23天】
33 2
|
2天前
|
网络协议 算法 网络架构
Python网络编程之udp编程、黏包以及解决方案、tcpserver
Python网络编程之udp编程、黏包以及解决方案、tcpserver
|
2天前
|
机器学习/深度学习 数据挖掘 算法框架/工具
Python:编程的艺术与魅力
Python:编程的艺术与魅力
25 3
|
2天前
|
机器学习/深度学习 数据可视化 数据挖掘
实用技巧:提高 Python 编程效率的五个方法
本文介绍了五个提高 Python 编程效率的实用技巧,包括使用虚拟环境管理依赖、掌握列表推导式、使用生成器提升性能、利用装饰器简化代码结构以及使用 Jupyter Notebook 进行交互式开发。通过掌握这些技巧,可以让你的 Python 编程更加高效。
|
2天前
|
Python
Python常见的魔术方法和魔术属性(二)
Python常见的魔术方法和魔术属性(二)