Python 动态绑定属性和方法 

Python是动态语言,在创建对象后,可以动态地绑定属性和方法

定义类:

class Student:  #定义类
    #在__init__初始化方法中定义的属性是Student类的所有对象共享的属性,如self.name,self.age
    def __init__(self,name,age):  #__init__初始化方法
        self.name=name    #将局部变量name,赋值给实例变量
        self.age=age
    def eat(self):  #类方法
        print(self.name+"在吃饭")

一个Student类可以创建N多个Student类的实例对象,每个实例对象的属性可以相同也可以不同

如下面的张三李四:

stu1=Student("张三",20)    #创建Student类的实例对象stu1
stu2=Student("李四",30)

若只想给一个实例对象添加属性,那么就可以使用动态绑定属性的方法,为stu1添加一个性别属性
在对象创建后创建的属性,只适用于该对象使用

stu1.gender="女"   #只为stu1实例对象动态添加属性,该属性只适用于stu1实例对象
print(stu1.name,stu1.age,stu1.gender)   #张三 20 女
print(stu2.name,stu2.age)   #张三 20 女
#print(stu2.name,stu2.age,stu2.gender)   #AttributeError报错,对象里没有该属性

总结:

  • 1.在__init__初始化方法中定义的属性是Student类的所有对象共享的属性,如self.name,self.age
  • 2.在对象创建后创建的属性,只适用于该对象使用,若其他对象使用则会报错,因为没有该属性
  • 3.一个Student类可以创建N多个Student类的实例对象,每个实例对象的属性可以相同也可以不同,

如下面的张三李四:

stu1.eat()  #张三在吃饭,对象可以直接引用类里定义的方法
stu2.eat()  #李四在吃饭

除了可以动态添加属性,还可以动态添加方法:

def show():
    print("定义在类之外的,称为函数")
stu1.show=show    #将定义的函数绑定在stu1这个对象上
stu1.show()   #绑定后stu1就可以调用show()方法了
stu2.show()

知识点总结:

编程思想:

  • 1.面向过程
  • 2.面向对象

类对象  class:

  • 1.类属性
  • 2.类方法
  • 3.实例方法
  • 4.静态方法

实例对象:

  • 1.类名() 创建实例对象c
  • 2.动态绑定属性
  • 3.动态绑定方法

到此这篇关于Python 动态绑定属性和方法 的文章就介绍到这了,更多相关Python 动态绑定内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python类的方法属性与方法属性的动态绑定代码详解

    动态语言与静态语言有很多不同,最大的特性之一就是可以实现动态的对类和实例进行修改,在Python中,我们创建了一个类后可以对实例和类绑定心的方法或者属性,实现动态绑定. 最近在学习python,纯粹是自己的兴趣爱好,然而并没有系统地看python编程书籍,觉得上面描述过于繁琐,在网站找了一些学习的网站,发现廖雪峰老师的网站上面的学习资源很不错,而且言简意赅,提取了一些python中的重要的语法和案例.重要的是可以在线测试python的运行代码,缺点就是没有系统的看python的书籍,不能及时的将

  • Python类的动态绑定实现原理

    使用实例引用类的属性时,会发生动态绑定.即python会在实例每次引用类属性时,将对应的类属性绑定到实例上. 动态绑定的例子: class A: def test1(self): print("hello") def test2(self): print("world") def bound(): a = A() a.test1() A.test1 = A.test2 a.test1() if __name__ == "__main__": bo

  • Python 动态绑定属性和方法 

    Python是动态语言,在创建对象后,可以动态地绑定属性和方法 定义类: class Student:  #定义类     #在__init__初始化方法中定义的属性是Student类的所有对象共享的属性,如self.name,self.age     def __init__(self,name,age):  #__init__初始化方法         self.name=name    #将局部变量name,赋值给实例变量         self.age=age     def eat(

  • Python复数属性和方法运算操作示例

    本文实例讲述了Python复数属性和方法运算操作.分享给大家供大家参考,具体如下: #coding=utf8 ''''' 复数是由一个实数和一个虚数组合构成,表示为:x+yj 一个负数时一对有序浮点数(x,y),其中x是实数部分,y是虚数部分. Python语言中有关负数的概念: 1.虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数 2.复数由实数部分和虚数部分构成 3.表示虚数的语法:real+imagej 4.实数部分和虚数部分都是浮点数 5.虚数部分必须有后缀j或J 复

  • 一篇文章彻底搞懂Python类属性和方法的调用

    目录 一.类.对象概述 二.类的定义与使用 三.类属性和类方法的调用 四.私有成员与公有成员 总结 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的. 一.类.对象概述 在面向对象程序设计中,把数据以及对数据的操作封装在一起,组成一个整体(对象),不同对象之间通过消息机制来通信或者同步.对于相同类型的对象进行分类.抽象后,得出共同的特征而形成了类. 类的抽象具体包括两个方面: 1.数据抽象:描述某类对象共有的属性或状态. 2.过程抽象:描述

  • python 特殊属性及方法详细解析

    目录 概述 特殊属性 1. _ _ name _ _ 2._ _ bases _ _ 和_ _ base _ _ 以及 _ _ mro _ _ 3._ _ class _ _ 4._ _ dict _ _ 特殊方法 1. _ _ subclasses _ _ () 2._ _ new _ _ (). _ _ init _ _ ()和 _ _ del _ _ () 3._ _ repr _ _ ()和 _ _ str _ _ () 4._ _ call _ _ () 5._ _ lt _ _ ()

  • python私有属性和方法实例分析

    本文实例分析了python的私有属性和方法.分享给大家供大家参考.具体实现方法如下: python默认的成员函数和成员变量都是公开的,并且没有类似别的语言的public,private等关键词来修饰. 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了. 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成

  • Python私有属性私有方法应用实例解析

    01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 不希望公开的 方法 定义方式 在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法 class Women: def __init__(self, name): self.name = name # 不要问女生的年龄 self.__age = 18 def _

  • python里运用私有属性和方法总结

    如何在PYTHON里运用私有属性和方法 class File: def __init__(self, name): self.name = name self.code = "ABCDEF" file_A = File("file_A") #假设我们有一个类,叫做文件类,设置一个对象file_A. file_A.code #如果直接调用属性,是可以看到属性里面有什么,但是如果这是个机密的密码不能公布,是不能这么处理的. class File: def __init_

  • Python实现动态添加属性和方法操作示例

    本文实例讲述了Python实现动态添加属性和方法操作.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #!python3 class Person(): def __init__(self, name, age): self.name = name self.age = age p1 = Person('ff', '28') print(p1.name, p1.age) # 给实例对象动态添加sex属性 p1.sex = 'female' print(p1.sex

  • python中类和实例如何绑定属性与方法示例详解

    前言 python类与实例的方法的调用中觉得云里雾里,思考之后将自己的想法记录下,一来加深自己理解,巩固自己记忆,而来帮助一些想要学习python的朋友理解这门抽象的语言,由于Python是动态语言,类以及根据类创建的实例可以任意绑定属性以及方法,下面分别介绍. 1.类绑定属性 类绑定属性可以直接在class中定义属性,这种属性是类属. class Student(object): name = 'Student' 这个属性虽然归类所有,但类的所有实例都可以访问到. class Student(

随机推荐