Python方法和属性的动态绑定 --面向对象
2024-09-11 14:43:19
需要了解的:
__ slots __:属于魔术变量,即:系统实现某些特定功能的变量
__ slots __:
1.限定类实例能添加的属性
2.对当前类起作用,对继承的子类是不起作用的
实操:
# coding:utf8
import traceback
from types import MethodType
class CustomClass(object):
pass
# class CustomClass(object):
# __slots__ = ['name', 'set_name']
def set_name(self, name):
self.name = name
custom_class = CustomClass()
custom_class.name = "Thanlon" # 动态添加属性
custom_class.set_name = MethodType(set_name, custom_class) # 添加set_name方法作用在cusClass类中
custom_class.set_name("Tangtang")
print(custom_class.name)
try:
custom_class.sex = '女'
print(custom_class.sex)
except AttributeError:
traceback.print_exc()
class ExtMyClass(CustomClass):
pass
ext_class = ExtMyClass()
ext_class.sex = '男'
print(ext_class.sex)
最新文章
- 和Java相关的书籍,想成为架构师的请收藏一下啊
- (十一)WebGIS中要素(Feature)的设计
- Divide and Conquer:River Hopscotch(POJ 3258)
- [原 ->; 砖] C# IEnumerable<;T>;泛型取值
- python logging 日志轮转文件不删除问题
- Fiddle的应用
- Linux查看代码量
- 最佳新秀Java(22)——再次了解泛型
- mysql面试
- Swing学习篇 API之JButton组件
- vue2中component父子组件传递数据props的使用
- 八、VueJs 填坑日记之参数传递及内容页面的开发
- MobileNets总结
- Effective Java 第三版——14.考虑实现Comparable接口
- 从零开始学习前端开发 — 10、HTML5新标签及表单控件属性和属性值
- [译]Ocelot - Getting Started
- PHP实用代码片段(一)
- AtCoder arc061C Snuke&#39;s Subway Trip
- STM32F412应用开发笔记之九:移植FreeRTOS到F412ZG平台
- 【Java】 剑指offer(5) 从尾到头打印链表
热门文章
- Linux批量结束、杀死进程
- Linux内核开发进阶书籍推荐(不适合初学者)
- Objective-C RunTime 学习笔记 之 atomic/nonatomic 关键字
- 31 Python中 sys.argv[]的用法简明解释(转)
- 2017-2018-2 20155228 《网络对抗技术》 实验一:PC平台逆向破解
- Centos7 下yum安装mysql
- c++基础 - constexpr
- Java-对象及变量的并发访问小结
- vue-cli3使用webpack-spritesmith配置雪碧图
- PL/SQL执行计划查看