Python面向对象高级编程

2021-03-28 00:27

阅读:383

标签:函数   动态   types   code   michael   测试结果   绑定   实例   strong   

一、实例绑定属性和方法(动态语言特有)

先定义class:

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
  >>> s.set_age = MethodType(set_age, s) # 给实例绑定一个方法
  >>> s.set_age(25) # 调用实例方法
  >>> s.age # 测试结果
  25

但是,给一个实例绑定的方法,对另一个实例是不起作用的

为了给所有实例都绑定方法,可以给class绑定方法:

  >>> def set_score(self, score):
  ...     self.score = score
  ...
  >>> Student.set_score = set_score

2、slots(限制实例的属性)

class Student(object):
slots = (‘name‘, ‘age‘) # 用tuple定义允许绑定的属性名称

Python面向对象高级编程

标签:函数   动态   types   code   michael   测试结果   绑定   实例   strong   

原文地址:https://www.cnblogs.com/ptxiaochen/p/13644790.html


评论


亲,登录后才可以留言!