类和对象:给大家介绍对象
2017-08-30 16:45
197 查看
class person: #属性 age = 20 name = "guojawee" #方法 def show(self): #函数的第一个参数必须是self print("年龄 = %d" %self.age) #属性前必须加self print("名字 = %s" %self.name) p = person() #定义一个对象 p.show() 注解:self相当于C++中的this指针 ---------------------------------------------- 对象 = 属性+方法 封装 继承 多态:不同对象对同一方法,响应不同的行动 ----------------------------------------------
name mangling 名字改变,名字重整
在Python中定义私有变量只需要在变量名或函数名前加上两个下划线__, 那么变量或函数就会成为私有的了。 __变量名 改编成 _类名__变量名
继承
class 子类(父类): ... ... 调用未绑定的方法 使用super 游戏:鲨鱼吃鱼 小鱼:金鱼Goldfish,鲤鱼Carp,三文鱼Salmon, 鲨鱼:Shark import random as r class fish: def __init__(self): self.x = r.randint(0,10) #生成坐标 self.y = r.randint(0,10) def move(self): self.x -= 1 print("位置:" , self.x , self.y) class Goldfish(fish): pass class Carp(fish): pass class Salmon(fish): pass class Shark(fish): def __init__(self): #fish.__init__(self) #fish.__init__(Shark) #非绑定的继承 super().__init__() #绑定的继承 self.hungry = True def eat(self): if self.hungry: print("我饿了,我要吃东西...") else: print("撑死了,吃不下了...")
组合
一个水池类,里边有乌龟和各种鱼 class Turtle: def __init__(self,x): self.num = x class Fish: def __init__(self,y): self.num = y class pool: def __init__(self,num1,num2): #利用组合 self.Turtle = Turtle(num1) self.Fish = Fish(num2) def print_num(self): print("水池中,有乌龟%d只,鱼%d条" %(self.Turtle.num,self.Fish.num)) p = pool(1,2) p.print_num() #水池中,有乌龟1只,鱼2条 [说明]组合的使用规则: 假设B类想组合A类,那么在B类的构造函数中,直接实例化A类的对象即可。
绑 定
Python严格要求方法需要有实力才能被调用,这种限制其实 就是Python所谓的绑定。
一些相关的BIF
issubclass(class,classinfo) isinstance(object,classinfo) hasattr(object,name) 测试一个对象object中是否有name属性 getattr(object,name[,default]) 获得对象object指定属性name的值 setattr(object,name,value) 没有就新建一个属性name,并设值为value delattr(object,name) property(fget=None,fset=None,fdel=None,doc=None)属性设置属性
相关文章推荐
- 给大家介绍对象 - C++快速入门14
- 类和对象:给大家介绍对象 - 零基础入门学习Python036
- 给大家介绍对象 - C++快速入门14
- 零基础入门学习Python(36)--类和对象:给大家介绍对象
- js arguments对象应用介绍
- window.event对象详细介绍
- 韩顺平 javascript教学视频_学习笔记25_bom介绍_dom对象层次图_dom对象(window对象1)
- Microsoft AJAX Library中的面向对象简单介绍
- 关于servlet的中的request和response两个对象的详细介绍
- 关于 活动对象调动器的 介绍
- Java String对象的介绍和一些常用的方法
- 介绍OSG,希望大家能多交流学习感受
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- ASP.NET Web API 路由对象介绍
- VMWare竞争的产品: 介绍Microsoft Virtual Server 2005 R2给大家吧
- javascript中全局对象的isNaN()方法使用介绍
- Javascript对象中关于setTimeout和setInterval的this介绍
- javascript中全局对象的isNaN()方法使用介绍
- 面向对象 Python的类 介绍
- Android位置服务介绍,并介绍如何通过LocationManager对象获取位置信息