Python 对象 --组合,绑定
2017-07-12 21:36
176 查看
组合:
当对象之间无法继承和多继承时,此时可能需要用到组合。比如一个水池里面有鱼和乌龟,此时肯定不能继承
组合代码如下:
class Turtle: def __init__(self,x): self.num = x class Fish: def __init__(self,x): self.num = x class Pool: def __init__(self,x,y): self.turtle = Turtle(x) self.fish = Fish(y) def print_num(self): print("there are turtles %d, fish %d" % (self.turtle.num,self.fish.num)) pool = Pool(1,10) pool.print_num()
类、类对象和实例对象
类定义后也叫类对象
比如下图的C便是类对象
类定义的属性都是静态属性,
当属性的名字和方法相同,属性会覆盖方法。如下:
为了避免名字上的冲突,大家需要遵守一些约定俗成的规矩:
1.不要试图在一个类里边定义出所有能想到的特性和方法,应该利用继承和组合机制来进行扩展
2.用不同的词性命名,如属性名用名词,方法名用动词
什么是绑定:
Python严格要求方法需要有实例才能被调用,这种限制其实就是python所谓的绑定概念在类没有实例化时,不要调用类中的方法。如下:
之所以会出现这个error,是因为函数中没有self这个变量用来绑定真正的对象实例
可以通过使用__dict__来查看对象的属性。如下图,dd的属性是字典,内容为空
类中定义的属性和方法都是静态的,即使del CC,即将CC类删掉,CC的实例也依然可以调用CC中的方法,因为静态变量一直存在,直到程序退出才释放空间。尽量使用实例属性,不要使用类属性,类属性主要用来跟踪一些值
相关文章推荐
- Python中对象与名字的绑定
- Python 性能优化——对象绑定
- 【转】python的对象与名字绑定
- python基础-命名空间、类_对象调用范围、对象组合
- Python 对象的绑定方法
- 零基础入门学习Python(19):对象(4)组合、绑定
- Python进阶 - 对象,名字以及绑定
- Python进阶 - 对象,名字以及绑定
- 鱼c笔记——Python类与对象:继承与组合
- python基础之继承组合应用、对象序列化和反序列化,选课系统综合示例
- python的对象与名字绑定
- Python进阶 - 对象,名字以及绑定
- Python开发基础-Day19继承组合应用、对象序列化和反序列化,选课系统综合示例
- Python3.X基础语法(数据类型/对象引用/组合数据类型/逻辑操作符/控制流语句/算数操作符/输入输出/函数创建和引用)001
- python字典对与list对象组合使用小问题
- Python--面向对象的程序设计之组合应用、开发软件规范
- python的对象与名字绑定-----------好!
- python-类和对象(属性、方法)的动态绑定
- python的对象与名字绑定(转贴,此文甚好)
- Python基础(6)- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)