zoukankan      html  css  js  c++  java
  • Python 给实例或者类动态绑定属性和方法

    首页定义一个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

     
  • 相关阅读:
    逻辑回归
    K均值算法
    机器学习相关数学基础
    1. 机器学习概述
    第15作业 语法制导的语义翻译
    编译原理作业十
    编译原理作业九
    编译原理 第八次作业
    第七次作业
    作业三--简单四则运算
  • 原文地址:https://www.cnblogs.com/xiaohai2003ly/p/8575098.html
Copyright © 2011-2022 走看看