CSIC_716_20191125【面向对象编程--类以及类的实例化】
面向对象编程:是一种编程思想
对象的定义:特征与功能的集合体
优点:可扩展性强
缺点:编程复杂度高,难度偏大
类的定义:一系列对象之间相同特征与技能的结合体
调用类的时候(实例化是时候),发生的事情:
产生一个空对象的名称空间----------->触发__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}')
CSIC_716_20191125【面向对象编程--类以及类的实例化】的更多相关文章
- [.net 面向对象编程基础] (9) 类和类的实例
[.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ...
- [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)
[.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...
- 《挑战30天C++入门极限》C++面向对象编程入门:类(class)
C++面向对象编程入门:类(class) 上两篇内容我们着重说了结构体相关知识的操作. 以后的内容我们将逐步完全以c++作为主体了,这也意味着我们的教程正式进入面向对象的编程了. 前面的教程我 ...
- Python:面向对象编程3 定制类(有更新)
Python:面向对象编程3 定制类(有更新) ⚠️本文主要内容为对Data model相关知识点的提取学习记录.(内容来自文档和部分网页教程案例) ⚠️:这个连接指向<流畅的python&g ...
- Java基础--面向对象编程1(类与对象)
1.类(class)的定义 类是对一组具有相同特征和行为的对象的抽象描述. 在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物. 2.对象(object)的定义 对象是类的具体实现 ...
- Python开发基础-Day17面向对象编程介绍、类和对象
面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux ...
- python基础之面向对象编程介绍、类和对象
面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux ...
- Day07:常用模块,面向对象编程(对象&类)及内置函数
今日内容:1.常用模块2.面向对象编程(*****) 介绍面向对象编程 类 对象3.内置函数------------------------------1.面向过程编程 核心“ ...
- 2016/1/17 笔记 1,面向对象编程OOP 2,类 全
面向对象编程OOP 编程方式的发展 1,面向过程 重用性低 维护工作量大 2,面向对象 重用性高 维护容易 概念 1,对象 Object 一个具体的事物 是类的实例 2,类Class 同一 ...
- python 面向对象编程 之 元类
元类是类的类,使我们自定义的类,即我们用class定义类本质就是元类,是类的模板 四步走: 一:控制class定义类的过程 1.先拿到类名 2.在拿到基类 3.执行类体代码,得到名称空间的dict 4 ...
随机推荐
- hdu 6435 /// 状压
题目大意: 给定 n m k 为 n种主武器 m种副武器 武器有k种属性 接下来n行 先给定当前主武器的综合分s1 再给定k种属性的值 接下来m行 先给定当前副武器的综合分s2 再给定k种属性的值 要 ...
- OA系统 权限管理的设计流程
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u013630349/article/det ...
- mongo之$group+$addToSet
直接举例说明 #ArrangingResult表结构 { "_id" : ObjectId("5acc739df78bf21f8c94f080"), " ...
- JS变量1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 基于LNMP架构部署wordpress
[root@localhost ~]# yum -y install unzip[root@localhost ~]# unzip wordpress-5.2.3.zip[root@localhost ...
- h5 app 设置全屏
h5 app的全屏和沉浸式状态栏是不一样的 全屏模式 常见使用场景:如果页面是全屏游戏,一般会直接让状态栏消失,也就是页面全屏.webview高度全屏了,状态栏没有了.写法: 终端支持:没有终端类型限 ...
- Linux下安装.NETCore3.0
今天把.NETCore从2.2升到3.0记录一下 Download .NET Core 3.0 :https://dotnet.microsoft.com/download/dotnet-core/ ...
- js基础用法 ,基础语法
js用法: HTML 中的脚本必须位于 <script> 与 </script> 标签之间. 脚本可被放置在 HTML 页面的 <body> 和 <head& ...
- 「题解」:07.16NOIP模拟T2:通讯
问题 B: 通讯 时间限制: 1 Sec 内存限制: 256 MB 题面 题目描述 “这一切都是命运石之门的选择.” 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此 ...
- JZOJ5143:无心行挽
Description “What’s left to do when we’ve lost all hope?”“若内心万念俱灰,是否注定无心行挽?”------来自网易云音乐<Golden ...