代码示例如下:

import types    #使用MethodType方法需要导入包

class test(object):  #定义 一个test类,包含name属性和f()方法

def __init__(self, name):

self.name = name

def f(self):

print("test")

#__slots__ = ('name')      #这句话固定了test类的对象的属性只有name,

#不允许再有其他的属性

def test2(self):   #定义一个函数,准备添加到test类的对象中

print("name:%s"%self.name)

a = test("老王")

a.f()

a.age = 18         #动态为a对象添加属性,如果设置了__slots__属性,则这句话会报错

print('年龄:%d'%a.age)

a.test2 = types.MethodType(test2,a)   #动态添加方法,将test2方法绑定到a对象上

a.test2()

Python如何动态的为对象添加方法或属性,__slots__用法的更多相关文章

  1. python中的类,对象,方法,属性等介绍

    注:这篇文章写得很好.加底纹的是我自己的理解 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

  2. Python常用的类库、对应的方法和属性

    Python常用的类库.对应的方法和属性

  3. C#类、对象、方法和属性详解

    C#类.对象.方法和属性详解 一.相关概念: 1.对象:现实世界中的实体(世间万物皆对象) 2.类:具有相似属性和方法的对象的集合 3.面向对象程序设计的特点:封装 继承 多态 4.对象的三要素:属性 ...

  4. python类、对象、方法、属性之类与对象笔记

    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...

  5. 给内置对象或自定义对象添加存取器属性(getter setter)的方法总结

    funct = { get: function() { return this._x }, set: function(value) { this._x = value } } function Ob ...

  6. [JS]给String对象添加方法,使传入的字符串字符之间以空格分开输出

    看到一个这样子的面试题: 给String对象添加一个方法,传入一个string类型的参数,然后将string的每一个字符间加空格返回,例如:addSpace("hello world&quo ...

  7. Python面向对象高级编程:__slot__(给实例添加方法、属性)

    纲要: 本章总的来说是给实例添加属性,给类添加方法两个主题,以及相应的作用范围.总结如下: 1.给实例添加属性(作用范围:当然是只对当前实例有效): 2.用__slots__限制可以给实例添加的属性( ...

  8. JavaScript中给对象添加方法

    在JavaScript中,我们经常要给已定义的对象添加一些方法,如下:    function circle(w,h){      this.width=w;      this.height=h; ...

  9. Js构造对象-添加方法的三种方式

    Js构造函数添加方法有多种方案,来看一个混合方式构造函数的例子:申明person构造函数,有两个属性,name,qq.在原型上添加方法showname.这是最常用的方法. <script> ...

随机推荐

  1. 笔记||Python3之模块与包

    模块的概念:一个.py文件就称之为一个模块. 包的概念:把许多个模块按照功能放到不同的目录中来组织模块,这些组织存放模块文件的目录,我们称之为包. 模块与包的优势:1- 方便别人调用 2 - 避免同名 ...

  2. Linux—cat

    cat:查看文件内容 cat -A: 显示文件中一些比较特殊的符号,如行尾的$ cat -n:  显示行号包括空白行 cat -b:  显示行号不包括空白行

  3. cookie、session和token那些事

    cookie 和 session 众所周知,HTTP 是一个无状态协议,所以客户端每次发出请求时,下一次请求无法得知上一次请求所包含的状态数据,如何能把一个用户的状态数据关联起来呢? 比如在淘宝的某个 ...

  4. 3年java开发面试BAT,你必须彻底搞定Maven!

    前言 现在的Java项目中,Maven随处可见. Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖 ...

  5. 深入解析http协议

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  6. 如何下载Vimeo视频

    MediaHuman YouTube Downloader是应用在Mac上的一款非常优秀的YouTube视频下载工具,YouTube Downloader破解版将帮助你快速完成视频下载,而不会挂断.您 ...

  7. MongoDB 快速扫盲贴

    长话短说 经过996的历练,开发者潜意识里总是以object的视角看待事物, 现在某些数据库也具备这样的视角. MongoDB是一个文档型(类JSON 文档)数据库,相比传统的关系型row/colum ...

  8. C#总结(七)动态加载C++动态链接库

    C#调用C++ 链接库的方式分为静态调用和动态调用这两种方式.静态调用之前的文章里面都有介绍,使用.net 提供的DllImport 导入相关的C++ 库即可.请看之前的文章,https://www. ...

  9. confluence 挖矿木马应急响应

    最近遇到一台confluence wiki主机被挖矿,收到CPU 告警异常之后,登录查看,进行分析. top c 命令查看,果然CPU 已经资源已经被吃完了.. 看到用户是confluence,100 ...

  10. 百度大脑UNIT3.0解读之对话式文档问答——上传文档获取对话能力

    在日常生活中,用户会经常碰到很多复杂的规章制度.规则条款.比如:乘坐飞机时,能不能带宠物上飞机,3岁小朋友是否需要买票等.在工作中,也会面对公司多样的规定制度和报销政策.比如:商业保险理赔需要什么材料 ...