面向对象编程:是一种编程思想

对象的定义:特征与功能的集合体

优点:可扩展性强

缺点:编程复杂度高,难度偏大

类的定义:一系列对象之间相同特征与技能的结合体

调用类的时候(实例化是时候),发生的事情:

产生一个空对象的名称空间----------->触发__init__方法,并将对象名作为第一个参数传入------------>将其他参数一并传给__init__。

可以通过__dict__方法查看类和对象名称空间中的具体内容。

对类和对象进行查、增、删、改的具体操作:(此处类和对象的操作是相似的,以其中对象为例)

对象 = 类();obj = Student()

obj.name 查看obj对象name的值

obj.new = X 新增一个new属性,赋值为X

obj.name = Y 将obj对象的name属性修改为Y

del obj.new 删除objs=new属性

类实例化多个对象时,多个对象共用类中的数据,即指向同一个内存。(类的数据特性)

对个对象也都可以使用类中的函数,不过,这些函数谁调用就和谁绑定,称之为对象的绑定方法。(类的函数特性)

对象在调用绑定方法的时候,会将自身作为第一个参数传入绑定方法中,然后将其他参数一并传给绑定方法。

在python3中,类即类型。所有的数据类型都是类,都可以被实例化。故:一切皆对象

类与对象之间的交互

以下程序展示了两个类之间的交互。people和dog之间的互相攻击

class People:
camp = 'human' def __init__(self, name, attack, life):
self.attack = attack
self.name = name
self.life = life def attack1(self, target):
print(f'{self.name}开始攻击')
if target.life >= self.attack:
target.life -= self.attack
return True
else:
target.life = 0
print(f'{target.name}挂了')
return False class Dog:
camp = 'beast' def __init__(self, attack, name, life):
self.attack = attack
self.life = life
self.name = name def attack1(self, target):
print(f'{self.name}开始攻击')
if target.life >= self.attack:
target.life -= self.attack
return True
else:
target.life = 0
print(f'{target.name}挂了')
return False p1 = People('sun', 100000, 200)
d1 = Dog(30000, 'moon', 50000000) while True:
res = p1.attack1(d1)
if not res:
break
res2 = d1.attack1(p1)
if not res2:
break print(f'{p1.name}的血量为{p1.life}')
print(f'{d1.name}的血量为{d1.life}')

  

最新文章

  1. svd自我学习
  2. C#位操作(转)
  3. eclipse设置显示代码行数(转)
  4. WPF,给颜色SolidColorBrush添加动画
  5. 细说Mysql四种安装方法及自动化部署
  6. Oracle ORA-12519: TNS:no appropriate service handler found 解决
  7. 解决WEB(apache)服务器time_wait过高的性能优化过程
  8. Ubuntu 12.04 搭建Android开发环境
  9. C#模拟登录的htmlHelper类
  10. 【Android进阶】使用Andbase快速开发框架实现常见侧滑栏和滑动标签页组合效果
  11. reflow和repaint
  12. MySQL连接数实时查看
  13. 深度学习与NLP简单应用
  14. ASP.NET之虚方法
  15. jvm参数与GC
  16. Hive记录-hive权限控制
  17. jersey2+freemarker+spring3的集成
  18. Ghost硬盘对拷
  19. Tomcat安全配置与性能优化
  20. 《JavaScript 实战》:JavaScript 图片滑动切换效果

热门文章

  1. 净心诀---python3装饰器
  2. python-selenium -- 弹出框处理
  3. 文件 IO
  4. [转载]A星寻路算法介绍
  5. ZMQ相关
  6. vue 监听的使用
  7. 第一个gulp 项目
  8. Python语法学习记录之tuple该如何使用?
  9. 8-26接口压力测试-3Jmeter-Java请求
  10. BeanFactory 和 ApplicationContext 区别