动态给实例添加属性和方法
from types import MethodType#创建一个空类
class Person(object):__slots__ = ("name","age","speak","height")per = Person()
#动态添加属性,这体现了动态语言的特点(灵活)per.name = "tom"
print(per.name)
'''
#动态添加方法
def say(self):print("my name is "+self.name)
per.speak = say
per.speak()
'''def say(self):print("my name is "+self.name)
per.speak = MethodType(say,per)
per.speak()#思考:如果我们想要限制实力的属性怎么办
#比如:只允许给对象添加 name,age,height,weight属性#解决:定义类的时候,定义一个特殊的属性(__slots__)
#可以限制动态添加的属性
per.height = 100
print(per.height)
动态给实例添加属性和方法相关推荐
- 我的Python学习笔记(四):动态添加属性和方法
一.动态语言相关概念 1.1 动态语言 在运行时代码可以根据某些条件改变自身结构 可以在运行时引进新的函数.对象.甚至代码,可以删除已有的函数等其他结构上的变化 常见的动态语言:Object-C.C# ...
- 【17】有关python面向对象编程的提高【多继承、多态、类属性、动态添加与限制添加属性与方法、@property】...
一.多继承 案例1:小孩继承自爸爸,妈妈.在程序入口模块再创建实例调用执行 #father模块 class Father(object):def __init__(self,money):self.m ...
- juqery追加li_jQuery添加li标签以及添加属性的方法
这次给大家带来jQuery添加li标签以及添加属性的方法,jQuery添加li标签以及添加属性的方法的注意事项有哪些,下面就是实战案例,一起来看一下. pageEncoding="UTF-8 ...
- vue实例的属性和方法
一. vue实例的属性和方法 1.属性 1.常用属性 vm.$el #获取的是个dom对象可以点下面的属性 vm.$data #获取的是个.... vm.$options vm.$refs ...
- Vue2.x源码学习笔记-Vue实例的属性和方法整理
还是先从浏览器直观的感受下实例属性和方法. 实例属性: 对应解释如下: vm._uid // 自增的id vm._isVue // 标示是vue对象,避免被observe vm._renderProx ...
- 给JS对象添加属性和方法
方式一:在定义对象时,直接添加属性和方法 function Person(name,age) {this.name = name;this.age = age;this.say = function( ...
- JS动态为对象添加属性
JS允许在创建完一个对象后,动态给对象添加属性.如下 var obj = {};// 动态给对象添加属性的常见方式 obj.name = 'aaa'; obj.age = 22; console.lo ...
- python methodtype_Python的实例定属性和方法或类绑定方法
一.给实例对象绑定属性和方法: 1.给实例绑定属性:先定义一个Student类 #!/usr/bin/python class Student(object): pass 然后绑定属性: s = St ...
- Python 动态获取对象的属性和方法(内含inspect)
首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sysdef foo():passclass Cat(object):def __init__(se ...
最新文章
- Google Maps Android API V2的使用及问题解决
- (十)Java B2B2C o2o多用户商城 springcloud架构- SSO单点登录之OAuth2.0登录认证(1)
- Top20的OpenSSH服务器最佳安全实践--SSHD_CONFIG配置文件详细解读
- spring boot 中文文档地址
- python 排列组合速度_Python实现的简单排列组合算法示例
- js创建10万行表格 页面显示10万行数据
- WebAssembly 开启微服务新时代
- 知乎要用AI打造智能社区,专治「答非所问」的瓦力机器人已上线
- 【RPC】远程过程调用
- PEP 263 -- Defining Python Source Code Encodings(定义Python源代码编码)
- 基于java+swing的物业收费管理系统(java+swing+Gui)
- 阿尔泰USB5630数据采集卡
- phoenix-hbase 服务频繁挂掉问题排查
- python爬虫入门 之 requests 模块
- 即使被拖库,也可以保证密码不泄露(一种安全的加密方案)
- 软件集成测试采用,集成测试的组成以及流程
- 独立站推广引流的8个渠道
- 谷歌浏览器最小化后打开黑屏
- 元气骑士icloud共享吧_如何禁用OS X的iCloud照片和视频共享
- SpringCloud—笔记(一)零基础篇