首页定义一个class,创建一个实例之后,我们可以给该实例绑定任何属性和方法,先定义class:

class Student:
def __init__(self, name, score):
self.name = name
self.score = score

创建一个实例:

s1 = Student('sandy', 60)  # 创建一个实例并初始化
s1.age = '15' # 给实例s1绑定一个属性
print(s1.age) # 打印这个属性
输出结果是:15

还可以给实例s1绑定一个方法,先定义一个方法:
def set_age(self, age):
self.age = age 然后绑定到实例s1
 from types import MethodType
s1 = Student('sandy', 60)  # 创建一个实例并初始化
s1.set_age = MethodType(set_age, s1) # 给实例绑定一个方法
s1.set_age(22)  # 使用这个方法
print(s1.age) # 输出通过绑定方法设定的值
输出结果:22 绑定到实例的方法,只对这个实例s1有用,对别的实例是没有用的
如果要对其他的实例也有用,那么可以把方法绑定在class上
# _*_ coding:utf-8 _*_
from types import MethodType
 
def set_school(self, school):  # 定义好要绑定到类的方法
self.school = school class Student: ## 定义类
def __init__(self, name, score):
self.name = name
self.score = score Student.set_school = set_school # 把方法绑定到类上
s1 = Student('sandy', 60) # 初始化一个实例
s1.set_school('hanghzou') # 实例调用类绑定的方法
print(s1.school)
s2 = Student('hello', 22)
s2.set_school('yuhang')
print(s2.school)

输出结果:

hanghzou
yuhang

 

Python 给实例或者类动态绑定属性和方法的更多相关文章

  1. python动态绑定属性和方法

    基于Python 2.7.13测试. Python是动态语言,在类定义了之后,还可以动态地绑定属性和方法. 下面先来看怎么给类的实例动态地绑定属性和方法. >>> class Stu ...

  2. python面向对象-2深入类的属性

    在交互式环境中输入: >>> class A: a=0 def __init__(self): self.a=10 self.b=100 >>> a=A() > ...

  3. <九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性

    设计类

  4. java基础学习总结六(对象与类、类的属性与方法)

    一:面向过程与面向对象的区别 举例:一个人开门的动作,可以分解为开门,人进去,关门. 面向过程:人作为执行者,1:开门  2:进入   3:关门 面向对象:人作为指挥者,将开门,关门的动作都封装到门上 ...

  5. final可以修饰类、属性、方法

    final可以修饰类.属性.方法. 当用final修饰类的时候,此类不可被继承,即final类没有子类.这样可以用final保证用户调用时动作的一致性,可以防止子类覆盖情况的发生. 当利用final修 ...

  6. Java 类、属性、方法修饰符 public、private、protected、default

    Java 中修饰类修饰符:public .default (默认) Java 中修饰类中属性.方法修饰符:public.private.protected.default (默认) 通过 IDEA 创 ...

  7. Delphi 正则表达式之TPerlRegEx 类的属性与方法(7): Split 函数

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(7): Split 函数 //字符串分割: Split var   reg: TPerlRegEx;   List: TStrings; ...

  8. Delphi 正则表达式之TPerlRegEx 类的属性与方法(6): EscapeRegExChars 函数

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(6): EscapeRegExChars 函数 // EscapeRegExChars 函数可以自动为特殊字符加转义符号 \ var   ...

  9. Delphi 正则表达式之TPerlRegEx 类的属性与方法(5): Compile、Study

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(5): Compile.Study // Compile.Study var   reg: TPerlRegEx; begin   re ...

随机推荐

  1. Zabbix4.0添加端口和进程监控

    一:Zabbix设置主动模式: vim /etc/zabbix/zabbix_agent.conf Server=192.168.1.10 #被动模式的serverip地址,如果设置纯被动模式,可以注 ...

  2. CodeMix入门基础知识

    CodeMix在线订购年终抄底促销!火爆开抢>> CodeMix入门 CodeMix是一个Eclipse插件,可以直接从Eclipse访问VS Code和为Code OSS构建的附加扩展的 ...

  3. 从今天开始 每天记录HTML,CSS 部分的学习笔记

    从今天开始 每天记录HTML,CSS 部分的学习笔记

  4. maven包上传私服

    选择需要上传的项目右键-->Run As-->Run Configurations-->Maven Buid-->右键 new -->选择 base directory- ...

  5. L264 how cats are psychopaths

    When Becky Evans started studying cat-human relationships, she kept hearing, over and over again, ab ...

  6. centos /data目录扩容

    /data盘被日志撑死了,必须扩容 有一块现成的100G的/dev/sdb盘,但是mount到了/data/test目录下,而且还有应用程序在上面进行读写操作 1.先查看哪些应用程序 在占用磁盘 #f ...

  7. python day12 ——1.生成器2.生成器表达式 3.列表推导式

    一.生成器 什么是生成器. 生成器实质就是迭代器. 在python中有三种方式来获取生成器: 1. 通过生成器函数. 2. 通过各种推导式来实现生成器 . 3. 通过数据的转换也可以获取生成器. 1. ...

  8. Python 默认值字典

    from collections import defaultdict # 默认值字典 dd = defaultdict(lambda: "胡辣汤") # callable 可调用 ...

  9. Centos7 zip unzip 安装和使用

    安装: yum install -y unzip zip: 解压 unzip filename.zip

  10. pyx文件 生成pyd 文件用于 cython调用

    转于:https://www.2cto.com/kf/201405/304168.html 1. 初衷 最近学用python,python不愧是为程序员考虑的编程语言,写起来很快很方便,大大节省开发效 ...