5 属性查找与绑定方法
2018-06-18 02:24:10来源:未知 阅读 ()
面向对象学习目录
1 面向对象介绍
2 类、实例、属性、方法详解
3 面向过程与面向对象进一步比较
4 类与对象
5 属性查找与绑定方法
6 小结
7 继承与派生
8 组合
9 抽象类
10 多态
11 封装
12 绑定方法与非绑定方法
13 内置方法(上)
14 内置方法(中)之描述符
15 内置方法(下)
16 元类
属性查找
1 #类的数据属性是所有对象共享的,id都一样 2 print(id(OldboyStudent.school)) #4377347328 3 4 print(id(s1.school)) #4377347328 5 print(id(s2.school)) #4377347328 6 print(id(s3.school)) #4377347328
1 #类的函数属性是绑定给对象使用的,obj.method称为绑定方法,内存地址都不一样 2 3 print(OldboyStudent.learn) #<function OldboyStudent.learn at 0x1021329d8> 4 print(s1.learn) #<bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x1021466d8>> 5 print(s2.learn) #<bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x102146710>> 6 print(s3.learn) #<bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x102146748>> 7 8 #ps:id是python的实现机制,并不能真实反映内存地址,如果有内存地址,还是以内存地址为准
绑定方法
1 class OldboyStudent: 2 school='oldboy' 3 def __init__(self,name,age,sex): 4 self.name=name 5 self.age=age 6 self.sex=sex 7 8 def learn(self): 9 print('%s is learning' %self.name) #新增self.name 10 11 def eat(self): 12 print('%s is eating' %self.name) 13 14 def sleep(self): 15 print('%s is sleeping' %self.name) 16 17 18 s1=OldboyStudent('李坦克','男',18) 19 s2=OldboyStudent('王大炮','女',38) 20 s3=OldboyStudent('牛榴弹','男',78)
1 OldboyStudent.learn(s1) #李坦克 is learning 2 OldboyStudent.learn(s2) #王大炮 is learning 3 OldboyStudent.learn(s3) #牛榴弹 is learning
1 s1.learn() #等同于OldboyStudent.learn(s1) 2 s2.learn() #等同于OldboyStudent.learn(s2) 3 s3.learn() #等同于OldboyStudent.learn(s3)
类即类型
1 #类型dict就是类dict 2 >>> list 3 <class 'list'> 4 5 #实例化的到3个对象l1,l2,l3 6 >>> l1=list() 7 >>> l2=list() 8 >>> l3=list() 9 10 #三个对象都有绑定方法append,是相同的功能,但内存地址不同 11 >>> l1.append 12 <built-in method append of list object at 0x10b482b48 13 14 >>> l2.append 15 <built-in method append of list object at 0x10b482b88 16 17 >>> l3.append 18 <built-in method append of list object at 0x10b482bc8> 19 20 #操作绑定方法l1.append(3),就是在往l1添加3,绝对不会将3添加到l2或l3 21 >>> l1.append(3) 22 >>> l1 23 [3] 24 >>> l2 25 [] 26 >>> l3 27 [] 28 29 #调用类list.append(l3,111)等同于l3.append(111) 30 >>> list.append(l3,111) # l3.append(111) 31 >>> l3 32 [111]
小节练习
- 有一个计数器(属性),统计总共实例了多少个对象
- 英雄需要有昵称、攻击力、生命值等属性;
- 实例化出两个英雄对象;
- 英雄之间可以互殴,被殴打的一方掉血,血量小于0则判定为死亡。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:7 继承与派生
- python 之 并发编程(开启子进程的两种方式,进程对象的属性 2019-07-24
- Python-18-类的内置属性 2019-07-24
- python实现查找最长公共子序列 2019-07-24
- 面向对象阶段复习 2019-07-24
- 封装查找元素以及集成日志输出,Base模块 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash