码迷,mamicode.com
首页 > 编程语言 > 详细

Python面向对象高级编程

时间:2020-09-17 20:34:38      阅读:34      评论:0      收藏:0      [点我收藏+]

标签:函数   动态   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!