python 面向对象专题(一):面向对象初识、面向对象结构、类、self、实例化对象
1. 面向对象初识
1.面向过程编程vs函数式编程
减少了重复代码
增强了可读性
2.函数式编程vs面向对象编程
面向对象的第一个优点:
对相似功能的函数,同一业务下的函数进行归类,分类
面向对象的第二个优点:
站在上帝的角度构建代码,类就是一个公共的模板,对象就是从模板中实例化出来的,得到对象就是得到了一切. 类:具有相同属性和功能的一类事物
对象:某个类的具体表现
2. 面向对象的结构
类名:驼峰体,不要使用下划线
class Human: # (Human后面的括号可以有(继承),也可以没有,没有的话默认继承object)
mind = '有思想' # 1.类的属性(静态属性/静态字段)
def work(self): # 2.动态方法
print("人类都会工作")
3. 从类名的角度研究类
3.1 类名操作类中的属性
1.类名查看类中的所有方法
print(类名.__dict__) 2.类名操作类的静态属性,万能的点.
增:Human.body = "有头"
删:del Human.mind
改:Human.mind = "无脑"
查:Human.language
3.2 类名调用类中的方法
一般类中的方法,不会通过类名调用 总结:一般类名就是操作类中的属性
4. 从对象的角度研究类
4.1 实例化一个对象发生的三件事(非常重要)
对象是从类中出来的,只要是类名加上(),这就是一个实例化过程,这个就会实例化一个对象 1.通过object的__new__方法,产生并返回一个内存空间。
2.自动执行类中的__init__方法,并将这个对象空间(内存地址)传给了__init__方法的第一个位置参数self。
3.在__init__ 方法中通过self给对象空间封装属性。
4.2 对象操作对象空间的属性
1.对象查询对象中所有属性。 对象.__dict__
2.对象操作对象中的单个属性。 万能的点 .
4.3 对象查看类中的属性 (注意:只能查看,不能更改)
class Human: mind = '有思想'
language = '汉语'
def __init__(self,name,sex,age,hobby):
self.n = name
self.s = sex
self.a = age
self.h = hobby obj = Human('张三','男',18,'运动')
print(obj.mind)
print(obj.language)
obj.a = 666
print(obj.a)
4.4 对象查看类中的方法
类中的方法一般都是通过对象执行的(除去类方法,静态方法外),并且对象执行这些方法都会自动将对象空间传给方法中的第一个参数self。 class Human:
mind = '有思想'
language = '汉语'
def __init__(self,name,sex,age,hobby):
self.n = name
self.s = sex
self.a = age
self.h = hobby def work(self):
print(self)
print('人类会工作') def tools(self):
print('人类会使用工具') obj = Human('张三','男',18,'运动')
obj.work()
obj.tools()
5. self 是什么
self其实就是类中方法(函数)的第一个位置参数,只不过解释器会自动将调用这个函数的对象传给self。所以把类中的方法的第一个参数约定俗成设置成self, 代表这个就是对象
6. 一个类可以实例化多个对象
obj1= Human('张三','男',20,'美女')
obj2= Human('李四','男',18,'肥女')
print(obj1,obj2)
print(obj1.__dict__)
print(obj2.__dict__)
python 面向对象专题(一):面向对象初识、面向对象结构、类、self、实例化对象的更多相关文章
- python的类和实例化对象
一切皆对象,类也是对象,类来自于元类type,如果一个类没有声明自己的元类,默认它就是元类. 即类是元类的实例,通过type(类)会显示type,而实例来自于类. 类有两个属性,数据属性和函数属性,下 ...
- python中如何统计一个类的实例化对象
类中的静态变量 需要通过类名.静态变量名 来修改 :通过对象不能修改 python中如何统计一个类的实例化对象?? class Person: #静态变量count,用于记录类被实例化的次数 coun ...
- python基础(23):面向过程与面向对象的优劣、初识面向对象
1. 面向过程与面向对象的优劣 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程 ...
- python学习 day15打卡 初识面向对象
本节主要内容: 1.面向对象和面向过程 2.面向对象如何编写 3.面向对象和面向过程的对比 4.面向对象的三大特征 一.面向对象和面向过程(重点理解) 1.面向过程:一切以事物的流程为核心.核心是&q ...
- python 面向对象专题(六):元类type、反射、函数与类的区别、特殊的双下方法
目录 Python面向对象06 /元类type.反射.函数与类的区别.特殊的双下方法 1. 元类type 2. 反射 3. 函数与类的区别 4. 特殊的双下方法 1. 元类type type:获取对象 ...
- Python基础入门(6)- 面向对象编程
1.初识面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本篇随笔将详细介绍Python的面向对象编程. 如果你以前没有接触过面向对象 ...
- Python复习笔记(五)面向对象
1. __init__方法 # 1. 为对象在内存 中分配空间 -- 创建对象 # 2. 为对象属性 设置初始值 -- 初始化方法(init)+-------------- # 3. __init__ ...
- Python面向对象01 /面向对象初识、面向对象结构、类、self、实例化对象
Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象初识 2. 面向 ...
- 巨蟒python全栈开发-第16天 核能来袭-初识面向对象
一.今日内容总览(上帝视角,大象自己进冰箱,控制时机) #转换思想(从面向过程到面向对象) 1.初识面向对象 面向过程: 一切以事物的发展流程为中心. 面向对象: 一切以对象为中心,一切皆为对象,具体 ...
随机推荐
- controller场景设计
场景设计模型-手动场景快增长慢增长指定运行次数组模式 快增长模型:就是压力瞬间启动并且达到最大,通常用于秒杀的场景 loadrunner设置:瞬间启动,瞬间停止 慢增长:压力按照设定的规则慢慢的添加, ...
- Jmeter基础004----增加参数化
一.参数化概述 1.参数化概念 参数化就是动态的获取并设置数据,当执行批量操作时,如批量插入或批量删除,之前每执行完一次就需要修改一次,效率太低,参数化可以代替人工获取并设置数据,安全且高效! 2.J ...
- Java 从入门到进阶之路(二十三)
在之前的文章我们介绍了一下 Java 中的 集合框架中的Collection 的迭代器 Iterator,本章我们来看一下 Java 集合框架中的Collection 的泛型. 在讲泛型之前我们先来 ...
- EPLAN文本输入怎么转行,路径功能文本换行方法
EPLAN文本输入怎么转行,路径功能文本换行方法 在输入文本时,按CTRL+ENTER可以将字体换行 Ctrl+回车键
- 用python玩推理游戏还能掌握基础知识点,有趣又充实,你不试试吗?
可能更多的人依然还在苦苦的学python各种知识点,但其实同样很多人,玩着游戏就把python学会了. 用python玩推理游戏,是这份python教程中的12个游戏的其中之一. 有关这份Py ...
- npm: no such file or directory, scandir '.../node_modules/node-sass/vendor'
运行vue报错 npm run dev 解决办法,运行:npm rebuild node-sass
- 第一章:开始启程-你的第一行Android代码
Android 系统为开发者提供了什么? 四大组件 活动(Activity):界面 服务(Service):后台默默运行 广播接收器(Broadcast Receiver):接收.发送广播消息 内容提 ...
- CentOS 安装 VMware Tools 详细方法
点击虚拟机,选择安装vmware Tools工具 弹出上面的界面,右键选择奖上面的vmwaraTools.tar.gz解压到你要解压的目录下面 记得一定要使用root用户,进入到解压的目录 然后执行 ...
- struct2面试准备
二 工作流程1.客户端浏览器发出HTTP请求.2.根据web.xml配置,该请求被FilterDispatcher接收3.根据struts.xml配置,找到需要调用的Action类和方法, 并通过Io ...
- phpstorm设置xdebug调试
phpstorm设置xdebug调试# wamp开发环境安装完成以后,打开网页,输入 :localhost 检测xdebug是否开启 3.若xdebug已开启,请找到你wamp或者phpstudy的安 ...