面向对象思想

关注公众号“轻松学编程”了解更多。

1、面向对象的设计思想

面向对象是基于万物皆对象这个哲学观点。

2、面向对象和面向过程的区别

面向过程

在生活中:

它是一种看待问题的思维方式,在思考问题的时候,

着眼问题是怎样一步一步解决的,然后亲力亲为去解决问题【类似于公司里的执行者】。

在程序中:

​代码是从上而下顺序执行,各个模块之间的关系尽可能简单,

在功能上相对独立,程序的流程在写程序的时候就已经决定。

面向对象

> 在生活中:

>

> 它是另一种看待问题的方式,它着眼于找到一个具有特殊功能的个体,

> 然后委托这个个体去帮你完成某件事.这更符合人类思考习惯的思想【指挥者】。

>

> 在程序中:

>

> 把数据以及对数据的操作方法放在一起,作为一个相互依存的整体--对象;

>

> 把同类的对象进行抽象出其共性,形成类;

>

> 类中大多数数据,只能用本类的方法进行处理;

>

> 类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信;

>

> 程序执行的流程由用户在使用的过程中决定;

>

> 使用面向对象思想进行开发,需要先找到具有所需功能的对象来使用,

> 如果这个对象不存在,那么则需要创建这么一个具有所需功能的对象。

>

> 注意:面向对象只是一种思想,并不是一门编程语言。

**区别总结**

> a. 都是看待问题的一种思维方式,都能解决问题;

>

> b. 面向过程着眼于所有的事情亲力亲为;

>

> c. 面向对象着眼于找到一个具有特殊功能的对象,委托这个对象实现你需要实现的功能。

>

> python语言是面向对象的程序设计语言,类和对象是面向对象的核心。

类和对象

1、类和对象的概念

类:一个具有特殊功能的实体的集合[群体]。

对象:在一个类中,一个具有特殊功能的实体,能够帮忙解决特定的问题,对象通常也被称为实例。

两者之间的关系:类用于描述某一对象的共同特征,而对象则是类的具体存在。

举例:

学生 张三、李四

快递 顺丰、韵达

总结:

类与对象的关系:

a.类是对象的抽象,对象是类的具体体现。

b.类也是一种数据类型,只不过是自己定义的,类似与number,string等,它本身并不占用空间,但是它的实例[对象]是占用空间的。

2、类的定义

格式:

class 类名(object):

​ 类体

说明:

a.python中使用class关键字定义类;

b.类名只要是一个合法的标识符即可,命名规则遵循"大驼峰式命名"【每个单词的首字母大写】;

c.尽量使用单个或者多个有意义的单词连接而成

演示

# 一个简单的类的实例

class Person():

print("hello")

3、类的设计

只需要关心3样东西

1.事物名称[类名]: 如人类 (Person);

2.特征(属性): 如身高(height) 年龄(age)等 ——>名词;

3.行为(方法): 如跑(run) 说话(say) —————>动词。

类中的方法和属性

1、方法和属性的定义

生活中描述事物的无非就是描述事物的特征和行为。

python中用类来描述事物也是如此,前面已经定义了类,但是,如果只有类单独存在,没有任何意义,所以定义类其实就是定义类中的成员[成员变量和成员方法]。

在类中的变量我们称之为成员变量,在类中的方法我们称之为成员方法(函数)。

成员变量—>类具有的特征 例如:人—>身高,性别,体重。

成员方法 —>类具有的行为 例如人—>吃喝玩乐。

因此,拥有相同的(或者类似)属性和行为的对象都可以抽取出一个类。

class Persion():

#成员变量,初始值就是相当于默认值

name = ""

age = 0

height = 0

weight = 0

#成员方法

#在类的内部,使用def关键字来定义的一个方法

#注意:区别于普通方法,类中方法的参数必须包含参数self,且为第一个参数

#self代表类的实例(某个对象)

def run(self):

print("run")

def eat(self, food):

print("eat",food)

def sleep(self):

print("sleeping")

说明:定义了类,并在类中定义了成员变量和成员方法,但是成员变量和成员方法是如何使用的呢?

2、方法和属性的使用

2.1、实例化对象:

前面说过,对象是实实在在的个体,负责去完成某件指定的事情。

对象的创建的过程又被称作对象的实例化过程。

语法:

对象名 = 类名()

'''

实例化对象

格式: 对象名 = 类名()

注意: 没有参数的时候,小括号也不能省略

'''

#实例化一个对象

pre1 = Person()

print(pre1)

print(type(per1))

print(id(per1))

per2 = Person()

print(per2)

print(type(per2))

print(id(per2))

3、对象调用方法和属性

per = Preson()

'''

访问属性

格式:对象名.属性名

赋值:对象名.属性名 = 新值

'''

per.name = 'lili'

per.age = 18

per.height = 160

per.weight = 80

print(per.name, per.age, per.height, per.weight)

'''

访问方法

格式:对象名.方法名(参数列表)

'''

per.run()

per.eat("apple")

per.sleep()

#问题:目前来看Person创建的所有对象属性都是一样的

per2 = Person()

print(per2.age)

per3 = Person()

print(per3.age)

总结:

访问变量采用: 对象名.属性名;

访问方法采用: 对象名.方法名(参数列表)。

4、内存中的对象

per = Person()

说明:程序中定义Person类型的变量per实际是一个变量名,它被存放在栈内存中,它指向实际的Person对象,而真正的Person对象则存放在堆内存中。

综合练习:

第一天开学,介绍一下你自己其中包括姓名,年龄以及爱好

#学生类

class Student():

#特征:成员变量

self.name = ""

self.age = ""

self.hobby =""

def introduce(self,name, age, hobby):

print("大家好,我是%s,今年%d岁,爱好是%s"%(name,age, hobby))

def singsong(self):

print("娘子~啊哈")

def dance(self):

print("广场舞跳起来...")

def lie(self):

print("我家特别穷,我小时候就一直在放牛,只有几万头....")

# 类实例化

stu = Student()

# 成员方法调用

stu.introduce('ldc',18,'跑步')

stu.singsong()

stu.dance()

stu.lie()

输出:

大家好,我是ldc,今年18岁,爱好是跑步

娘子~啊哈

广场舞跳起来...

我家特别穷,我小时候就一直在放牛,只有几万头....

如何查看所有属性和方法

class Test():

def __init__(self,name):

self.name = name

def test(self):

print('testing...')

test = Test('测试')

# 查看所有属性和方法

list1 = dir(test)

# 检查实例是否有这个属性

print(hasattr(test, 'name'),hasattr(test, 'test'),hasattr(test, 'tt'))

# 设置属性值

setattr(test,'name','测试2')

# 获取属性值

print(getattr(test, 'name'))

输出:

True True False

测试2

后记

【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。

也可加我微信【1257309054】,拉你进群,大家一起交流学习。

如果文章对您有帮助,请我喝杯咖啡吧!

公众号

关注我,我们一起成长~~

python对象和类区别_python面向对象(类与对象)相关推荐

  1. python中删除对象方法的区别_python中delattr删除对象方法的代码分析

    最近我们针对对象属性这块,介绍了不少关于测试属性的方法.在进行一系列测试后,我们发现这个属性并不需要,这时候就要用到删除的功能.在python中可以选择delattr函数删除对象的属性,基于它的删除功 ...

  2. python的类和对象_Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象.分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态): 属性一般是一个个变量:方法是一个个函数: #类的属性 ...

  3. python面向对象类_python面向对象-类和对象

    一. 类的定义 class类名(): 代码 #定义类 classWasher():defwash(self):print("洗衣服") 注意:类名要满足标识符命名规则,同时遵循大驼 ...

  4. python新式类和经典类区别_Python中新式类和经典类的区别,钻石继承

    1)首先,写法不一样: class A: pass class B(object): 2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索. 3)新式类更符合OOP编程思想,统一了pyt ...

  5. python面向对象类属性_python面向对象之类属性和类方法案例分析

    本文实例讲述了python面向对象之类属性和类方法.分享给大家供大家参考,具体如下: 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 使用面相对象开发, ...

  6. python类成员_Python的类成员和对象成员

    Python中有个类成员的概念,绝对是困扰新手的问题.看看下面的代码就知道两者的区别了. #!/usr/bin/python # -*- coding: utf-8 -*- import time f ...

  7. python 类和对象 经常用吗_python基础教程之对象和类的实际运用

    我们熟悉了对象和类的基本概念.我们将进一步拓展,以便能实际运用对象和类. 调用类的其它信息 中提到,在定义方法时,必须有self这一参数.这个参数表示某个对象.对象拥有类的所有性质,那么我们可以通过s ...

  8. python modbus类封装_Python | 面向对象程序设计来了!

    当当当,技术小E又来了! 经过前几次的基础贴的培训 相信很多同学对python的基础知识 已经有了一个简单的认识 那么下面我们来讲一讲 python面向对象程序设计. 我们在写程序的时候一般有两种方式 ...

  9. python如何设计工具类_Python面向对象 --- 类的设计和常见的内置方法

    面向对象:一种基于面向过程的新的编程思想.也就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种 ...

最新文章

  1. python开发工具排名-7款公认比较出色的Python IDE,你值得拥有!
  2. android怎么创建一个包命名空间,从Android的jar lib中声明命名空间
  3. php 正则匹配unicode,PHP中正则表达式对UNICODE字符码的匹配方法
  4. oracle em界面监控出来的奇怪图像_监控工程常见的5大难题,项目中都会遇到
  5. Mysql源码学习——Thread Manager
  6. Vue使用Axios实现http请求以及解决跨域问题
  7. 史上最全人工智能英文原版PDF教材1.03G资源包Artificial Intelligence
  8. 一个vue的日历组件ele-calendar
  9. android 平板怎么截图,平板电脑怎样截图
  10. 图神经网络(GNN)必读论文及最新进展跟踪
  11. ttl低电平接大电阻_谈谈上拉、下拉电阻
  12. python3.8.2 安装 win7下安装
  13. K8S 污点和容忍度
  14. JAVA程序的逻辑控制及输入输出
  15. IMX8开发板Ubuntu20系统下外设界面功能测试-迅为i.MX8MM
  16. 软件安全性测试有那些
  17. 计算出某年某月某日是星期几
  18. 升级iOS8和iOS9系统后,保险箱Pro、私人保险箱、私密相冊打开就闪退的官方解决方式...
  19. 老板电器:坏账与乌龙齐飞,主业难保新增长
  20. 我的大长腿,只有防弹级丝袜才能配得上

热门文章

  1. mcafee v8.5i 无法更新问题
  2. 非酋用计算机,拯救非酋带你入欧 炉石传说玄学开包经验
  3. cpu核数和逻辑个数的区别_处理器个数和处理器核心数的区别
  4. 自己实现一个 atoi 函数
  5. Flutter 原理与闲鱼深度实践
  6. 元气骑士卡无限服务器,元气骑士怎么无限刷肥料_元气骑士刷无限肥料BUG卡法教程_玩游戏网...
  7. MCE | 小分子降解剂——分子胶
  8. Firefox扩展中Keyconfig配置快捷键常用代码
  9. python面向对象语言_python是面向对象的语言吗
  10. JAVA毕业设计建材公司管理系统计算机源码+lw文档+系统+调试部署+数据库