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、实例化对象的更多相关文章

  1. python的类和实例化对象

    一切皆对象,类也是对象,类来自于元类type,如果一个类没有声明自己的元类,默认它就是元类. 即类是元类的实例,通过type(类)会显示type,而实例来自于类. 类有两个属性,数据属性和函数属性,下 ...

  2. python中如何统计一个类的实例化对象

    类中的静态变量 需要通过类名.静态变量名 来修改 :通过对象不能修改 python中如何统计一个类的实例化对象?? class Person: #静态变量count,用于记录类被实例化的次数 coun ...

  3. python基础(23):面向过程与面向对象的优劣、初识面向对象

    1. 面向过程与面向对象的优劣 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程 ...

  4. python学习 day15打卡 初识面向对象

    本节主要内容: 1.面向对象和面向过程 2.面向对象如何编写 3.面向对象和面向过程的对比 4.面向对象的三大特征 一.面向对象和面向过程(重点理解) 1.面向过程:一切以事物的流程为核心.核心是&q ...

  5. python 面向对象专题(六):元类type、反射、函数与类的区别、特殊的双下方法

    目录 Python面向对象06 /元类type.反射.函数与类的区别.特殊的双下方法 1. 元类type 2. 反射 3. 函数与类的区别 4. 特殊的双下方法 1. 元类type type:获取对象 ...

  6. Python基础入门(6)- 面向对象编程

    1.初识面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本篇随笔将详细介绍Python的面向对象编程. 如果你以前没有接触过面向对象 ...

  7. Python复习笔记(五)面向对象

    1. __init__方法 # 1. 为对象在内存 中分配空间 -- 创建对象 # 2. 为对象属性 设置初始值 -- 初始化方法(init)+-------------- # 3. __init__ ...

  8. Python面向对象01 /面向对象初识、面向对象结构、类、self、实例化对象

    Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象初识 2. 面向 ...

  9. 巨蟒python全栈开发-第16天 核能来袭-初识面向对象

    一.今日内容总览(上帝视角,大象自己进冰箱,控制时机) #转换思想(从面向过程到面向对象) 1.初识面向对象 面向过程: 一切以事物的发展流程为中心. 面向对象: 一切以对象为中心,一切皆为对象,具体 ...

随机推荐

  1. Jmeter基础002----Jmeter简单使用

    一.Jmeter概述 1.概述 JMeter是Apache公司使用JAVA开发的一款开源测试工具,它的功能强大.高效,可以模拟一些高并发或多次循环等测试场景,使用方便灵活. 2.使用 安装配置java ...

  2. 腾讯音乐Android工程师一面面试题记录,拿走不谢!

    最近参加了一次鹅厂音乐Android工程师面试,这里凭记忆记录了一些一面的面试题,希望能帮到正在面试的你! 1.Java调用函数传入实际参数时,是值传递还是引用传递? 2.单例模式的DCL方式,为什么 ...

  3. css3动画的实例讲解

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~

    不知道你是否在工作中有遇到过类似情况: dubbo接口调试复杂,需要通过telnet命令或者通过consumer调用来触发. telnet语句参数格式复杂,每次编写都要小心谨慎,一旦出错又需重来. 复 ...

  5. 【JMeter_17】JMeter逻辑控制器__随机顺序控制器<Random Order Controller>

    随机顺序控制器<Random Order Controller> 业务逻辑: 当控制器被触发时,将控制器下的所有子节点顺序打乱执行一遍,执行一遍,执行一遍,不是执行一个. 注意:是将子节点 ...

  6. 布局之: flex(CSS3新增)

    flex 基本概念 flex布局(flex是flexible box的缩写), 也称为弹性盒模型 .将属性和属性值(display:flex; )写在哪个标签样式中,谁就是 容器:它的所有子元素自动成 ...

  7. 上海开发票/v电13543443967

    关于事项:Iㄋ5一★4З44一★ㄋ9.б7开发票的准备资料必须要公司名称个人的话就用个人名字和身份证去税务柜台申请办理!公司的话要提供公司全称就是营业执照上的名称,纳税人税号,如果是开普通增值税发票的 ...

  8. pikachu靶场-CSRF

    xss和csrf区别: CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限,然后实施破坏. PS: 由于之前将php5升级到php7,导致靶场环境出现以下问题 ...

  9. pikachu靶场-XSS

    .Tips: 一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS 由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效,或者环境限制了执行(浏览器): 通过变化不同的scr ...

  10. 深度学习论文翻译解析(八):Rich feature hierarchies for accurate object detection and semantic segmentation

    论文标题:Rich feature hierarchies for accurate object detection and semantic segmentation 标题翻译:丰富的特征层次结构 ...