Python day 9(1) 对实例动态绑定属性和方法

一:未使用slots方法(都是在class定义完之后在class外部添加的):

(1)动态绑定属性

class Student(object):

          pass

      

>>> s = Student()
>>> s.name = ‘Michael‘ # 动态给实例绑定一个属性
>>> print(s.name)
Michael(2)动态绑定方法
>>> def set_age(self, age): # 定义一个函数作为实例方法
...     self.age = age
...
>>> from types import MethodType
>>> s.set_age = MethodType(set_age, s) # 给实例绑定一个方法
>>> s.set_age(25) # 调用实例方法
>>> s.age # 测试结果
25

注意:给一个实例绑定的方法对另一个实例不起作用。(3)给所有实例绑定方法 (给class绑定方法)
def set_score(self, score):
...     self.score = score
...
>>> Student.set_score = set_score二:用__slots__来限制实例的属性比如:限制属性只为‘name’和‘age’
class Student(object):
    __slots__ = (‘name‘, ‘age‘) # 用tuple定义允许绑定的属性名称

使用__slots__要注意,__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的



原文地址:https://www.cnblogs.com/woshihuihui/p/8266740.html

时间: 2024-10-12 02:42:43

Python day 9(1) 对实例动态绑定属性和方法的相关文章

Python的实例定属性和方法或类绑定方法

一.给实例对象绑定属性和方法:1.给实例绑定属性:先定义一个Student类 #!/usr/bin/python class Student(object): pass 然后绑定属性: s = Student() s.name = 'AAA' # 动态给实例绑定一个属性 print(s.name)#输出AAA 2.给实例绑定方法:先定义一个方法 def add(self,a,b): self.a = a self.b = b return self.a +self.b 然后绑定方法: Metho

Vue(十二)vue实例的属性和方法

vue实例的属性和方法 1. 属性 vm.$el vm.$data vm.$options vm.$refs 2. 方法 vm.$mount() vm.$destroy() vm.$nextTick(callback) vm.$set(object,key,value) vm.$delete(object,key) vm.$watch(data,callback[,options]) 原文地址:https://www.cnblogs.com/yulingjia/p/8288273.html

python 动态给实例添加属性和方法并使用__slots__

from types import MethodType #创建一个空类class Person(object): __slots__ = ("name", "age", "speak") per = Person()#动态添加属性,这体现了动态语言的特点(灵活)per.name = "tom"print(per.name)#动态添加方法'''def say(self): print("my name is &quo

python中的类和对象,属性和方法

一.面向对象的概述面向对象是一种描述业务问题.设计业务实体和实体之间关系的方法二.类和对象1.类和对象得区别:类是对客观世界中事物得抽象,而对象是类实例化后的实体   例如:汽车模型就是一个类,制造出来的每辆汽车就是一个对象2.类的定义:   (1)python使用class关键字定义一个类,类名的首字母一般要大写:       例如: class Student: #定义了一个Student类   (2)类的主体由一系列的属性和方法组成       例如: class Fruit: #定义一个

Python中类的继承及类的属性和方法总结

1.类的继承 类的继承 继承是面向对象的重要特性之一, 继承关系继承是相对两个类而言的父子关系 子类继承了父类的所有公有属性和方法, 继承,实现了代码重用 使用继承 继承可以重用已经存在的数据和行为,减少代码的重复编写, Python在类名后使用一对括号来表示继承关系,括号中的即类为父类 class Myclass(ParentClass), 如果父类定义了__init__方法,子类必须显式调用父类的__init__方法, ParentClass.__init__(self,[args...])

给类,实例绑定属性和方法

class Student(object): pass >>> s = Student() >>> s.name = 'Michael' # 动态给实例绑定一个属性 >>> print(s.name) Michael >>> def set_age(self, age): # 定义一个函数作为实例方法 ... self.age = age ... >>> from types import MethodType &g

python里面双向队列,列表的属性和方法

原文地址:https://www.cnblogs.com/chengchengaqin/p/9523050.html

Python中类的方法属性与方法属性的动态绑定

最近在学习python,纯粹是自己的兴趣爱好,然而并没有系统地看python编程书籍,觉得上面描述过于繁琐,在网站找了一些学习的网站,发现廖雪峰老师的网站上面的学习资源很不错,而且言简意赅,提取了一些python中的重要的语法和案例.重要的是可以在线测试python的运行代码,缺点就是没有系统的看python的书籍,不能及时的将知识的碎片化联系在一起,这也是看书与不看书的区别.尤其是在python类与实例的方法的调用中觉得云里雾里,思考之后将自己的想法记录下,一来加深自己理解,巩固自己记忆,而来

python3 类的属性、方法、封装、继承及小实例

Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. python类与c++类相似,提供了类的封装,继承.多继承,构造函数.析构函数. 在python3中,所有类最顶层父类都是object类,与java类似,如果定义类的时候没有写出父类,则object类就是其直接父类. 类定义 类定义语法格式如下: class ClassName:    <statem