前面写了文件的读取和文件处理等其他函数,里面用到了os库。

本来想分享os库,发现这个库可能对于初学者来说比较难,所以后面再等合适的时间谈谈,因为设计了很多文件系统的操作,比较偏Linux运维。

我们先看看面相对象编程吧,就是很多人口中谈到的OOP(Object-oriented Programming)

什么是向相对象编程?

我们是不是听过面向过程,拿来放在一起对比就比较好理解了。

简单来理解,面向过程就是一切用函数解决一切文件,简单粗暴!

面向对象是面向过程编程之后才出现了,没有面向对象编程很多程序还不是照样开发。

面向对象,也使用函数,但是多了一个网,这个网把一个或者多个函数,和数据关联在一起,然后称为一类事物,也就是程序中的‘类’(class)

定义类,从具体代码来感受吧!

面向对象编程,首先提出的第一个概念就是‘class’,类:

#这就是一个class的定义代码:
class hello_class():pass复制代码

然后通过class_name() 这样调用来生产对象。

代码稍微升级一下,我们看看:

class hello_class():pass#输出类信息
print(hello_class)
print(type(hello_class))
#创建类的实例对象
print(hello_class())
print(type(hello_class()))
复制代码

稍微补充一下:

print函数输出类对象的结果:通常是<'class全名‘ object at id序列号>

下面是运行结果:

这里我们加入新知识点:类实例对象 , 通常直接说,实例。

实例是class产生的对象,所有某个hello_class对象的类型(通过type函数获取)都必定是hello_class。

多个类和对象的观察

看完一个类,我们再看看两个类的对比,结果也是一致的。

下面是两个类的定义和生成对象的代码展示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/11/15 11:58 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : __init__.py.py
# @Project : helloclass student(object):“”“学委补充一下:__init___ 函数为类的初始化函数,在创建类对象实例的时候这个函数会被调用。”“”def __init__(self):print("hello, I am student")class programmer(object):def __init__(self):print("hello, I am programmer")class student(object):def __init__(self):print("hello, I am student")class programmer(object):def __init__(self):print("hello, I am programmer")s1 = student
print(s1)
p1 = programmer
print(p1)
s11 = student
print(s11)
p11 = programmer
print(p11)print("*" * 16)
# 创建对象
s2 = student()
print(s2)
p2 = programmer()
print(p2)# 创建对象
s3 = student()
print(s3)
p3 = programmer()
print(p3)
复制代码

稍微解释一下:

s1 和 p1 这两个变量打印输出结果是‘class’类型的。
s11 和 p11 这两个变量打印输出结果是‘class’类型的,但是s1跟s11,p1跟p11 是不变的。
s2 和 p2 这两个变量打印输出结果是'object'类型的。
s3 和 p3 这两个变量打印输出结果是'object'类型的。\

下面是运行结果:

初始化函数被调用了打印了对象信息。

到这里,大家应该都能知道class和object区别了吧

类: 描述了函数和属性的固定关系 (类实例)对象: 基于这种固定关系的一个活生生的个体,它的id是变化的。

补充一下类的属性(数据部分)

学委定义了一个student类,并创建了两个学生对象。

直接复制运行下面的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/11/15 11:58 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : __init__.py.py
# @Project : helloclass student(object):def __init__(self, name):self.name = namedef get_name(self):return self.namedef set_name(self, name):self.name = namedef study(self):print(f"{self.name} : 好好学习,天天向上!")s1= student("小白")
print(s1)
print(s1.get_name())
print(s1.study())s2 = student("学委的学生粉丝:哈哈哈")
print(s2)
print(s2.get_name())
print(s2.study())
复制代码

我们看到他们的id总是不同的(运行几次看看)。

然后每个学生都有一个name属性(携带姓名数据),和三个函数属性(分别用来获取姓名,改名,学习)。

然后我们调用了每个学生的study函数,输出了各自的学习状态。

总结

Python语言的简约设计,使得面向对象编程非常简单,轻松就定义和和获取对象了。

上面的代码非常简单,但是可以很好的感受到类和对象的呈现,多练习。

Python面向对象编程:入门类和对象相关推荐

  1. python面向对象编程从零开始_Python面向对象编程从零开始,从没对象到有对象

    原标题:Python面向对象编程从零开始,从没对象到有对象 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智 ...

  2. python面向对象编程从零开始_Python面向对象编程从零开始(4)—— 小姐姐请客下篇

    前言 前文传送门: Python面向对象编程从零开始(2)-- 与对象相互了解:Python面向对象编程从零开始(2)-- 与对象相互了解 Python面向对象编程从零开始(3)-- 小姐姐请客上篇: ...

  3. python对象编程例子-这是我见过最详细的Python面向对象编程!建议收藏!

    原标题:这是我见过最详细的Python面向对象编程!建议收藏! 面向对象编程和函数式编程(面向过程编程)都是程序设计的方法,不过稍有区别. 面向过程编程: 1. 导入各种外部库 2. 设计各种全局变量 ...

  4. Python零基础速成班-第9讲-Python面向对象编程(上),对象和类、初始化、继承、重写、多态、类方法、组合

    Python零基础速成班-第9讲-Python面向对象编程(上),对象和类.初始化.继承.重写.多态.类方法.组合 学习目标 修饰器 面向对象编程:对象和类.初始化.继承.重写.多态.类方法.组合 课 ...

  5. python面向对象编程之类和对象的概念

    首先需要明确,面向对象编程不是python独有的: 面向对象是一种编程思想: 在面向对象的思想中 万物都是对象 面向对象的简单理解: 面向对象是把一组数据结构和处理他们的方法组成对象,把具有相同行为的 ...

  6. Python面向对象编程:类继承和其衍生术语

    Python面向对象编程03:类继承和其衍生术语 前面我们讲到过正则表达式字符等,上一篇分享了面向对象编程和类的结构,最后稍微提到了继承. Python面向对象编程:深度认识类class_ Pytho ...

  7. 3. Python 面向对象编程

    文章目录 Python 面向对象编程 1.3.1 面向对象编程理论 1.3.1.1 对象 1.3.1.2 类 1.3.1.3 面向对象编程的特点 1.3.2 Python 面向对象编程 1.3.2.1 ...

  8. 这可能是Python面向对象编程的最佳实践

    作者 | 崔庆才 来源 | 进击的Coder(ID:FightingCoder) Python 是支持面向对象的,很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高,但是如果你写的多了 ...

  9. 《Python面向对象编程指南》——1.2 基类中的__init__()方法

    本节书摘来自异步社区<Python面向对象编程指南>一书中的第1章,第1.2节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...

  10. 关于python面向对象编程中、下列说法中_关于Python面向对象编程的知识点总结

    前言 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程. 接下来我们 ...

最新文章

  1. 《统一沟通-微软-技巧》-14-Exchange 2010 With SP1 OWA Integration
  2. Maven编译jar出现:无法确定 T 的类型参数的异常的原因和处理方案
  3. 安装wamp时出现httpd.exe无法找到组件MSVCR100.dll的解决办法
  4. 《SQL查询语句4》
  5. 【机器视觉】 try算子
  6. COM编程入门---转发
  7. MySQL CookBook 学习笔记-01
  8. 【转载】中国小吃(英文表达)
  9. docker 厂商 容器_我终于不用再解释Docker了!
  10. 由PPP项目总结的几点项目经验
  11. 儿童python编程教程-儿童编程python入门
  12. Python与SEO,搜狗站长平台链接提交工具Python脚本源码
  13. 智能名片如何在会场营销落地
  14. vue.js——ElementUI表单向后台提交FormData数据
  15. 《黑马》——C++基础入门
  16. Unity中实现动态天空盒
  17. Transform.RotateAround 围绕旋转
  18. 淘宝、京东、天猫商品名称数据集下载最新版本。包括中药、化学器材、摄影、动物、酒水、办公事务。
  19. C++ 解析PDF文件(含代码)
  20. 用笔记本电脑破解wifi密码

热门文章

  1. 综述 | 现在是蛋白质组学数据共享和再分析的黄金时间?
  2. python使用matplotlib可视化堆积的折线图、使用stackplot函数可视化堆积的折线图、不同数据在垂直方向堆叠
  3. R语言禁止数值表示为科学计数法实战(Turn Off Scientific Notation ):全局设置或者单变量设置
  4. pandas使用set_table_attributes函数、display_html函数等在jupyter notebook中并排显示两个dataframe的内容(side by side)
  5. R语言ggplot2可视化条形图(bar plot)、并为条形图添加误差条(error bar)、自定义设置误差条(error bar)的颜色/色彩( Barplots with Error bar)
  6. pandas获取dataframe数据列的数据类型、获取dataframe每类数据类型数据列的个数、使用select_dtypes函数、include参数以及exclude参数按照数据类型筛选数据
  7. python使用imbalanced-learn的InstanceHardnessThreshold方法进行下采样处理数据不平衡问题
  8. 华为NPU卡ubuntu(无网络连接情况)驱动安装记录
  9. Windows下查看已经安装的GPU的情况
  10. 什么是自然语言处理?自然语言处理可以分为四大类?有哪些具体任务?