Python的进阶之道【AIoT阶段一(上)】(十五万字博文 保姆级讲解)—玩转Python语法(二):面向对象—百宝箱(1)(一)

简介: 玩转Python语法(二):面向对象

三、玩转Python语法(二):面向对象

从这一大章节开始,就进入了面向对象的部分,Python 是面向对象的解释型高级动态编程语言,完全支持面向对象的基本功能,只掌握了面向过程是远远不够的,就开发而言,面向对象的重要程度要高于面向过程,如果你学习完了之前所讲的面向过程的内容,并且做了一定量的习题,那么你的基础可以说已经很牢固了,接下来就让我们走进对象的世界,程序员最不缺的是什么?是对象!


1.百宝箱

1.1 自定义模块

🚩首先来介绍一下什么是模块:模块英文为Modules,在Python中一个扩展名为.py的文件就是一个模块,我们写代码时使用模块的好处:

1.方便其它程序和脚本的导入并使用

2.避免函数名和变量名冲突

3.提高代码的可维护性

4.提高代码的可重用性

创建模块其实就是新建一个.py文件,要求名称不能和Python自带的标准模块名称相同,导入模块的代码格式:


# 把模块的内容全部导入

import 模块名称 [as 别名]

# 把模块的部分导入

from 模块名称 import 函数/变量/


下面我们通过导入 math 模块来讲解上述格式,math 模块中存有很多的数学公式,这些公式将被我们经常调用

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/20 20:48
# 欢迎大家关注AIoT相关博客~
import math
print(type(math))
print(math.pi)
print('----------------')
# 使用dir() 可以查看模块中的所有函数
print(dir(math))
# 常用的math中的函数:
# 计算几次方:
print(math.pow(2, 3))  # 计算2的3次方
# 向上取整
print(math.ceil(9.01))
# 向下取整
print(math.floor(9.99))

image.png

我们可以用 [as 别名] 来起别名:

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/20 21:09
# 欢迎大家关注AIoT相关博客~
import math as m
# 这个操作其实就是我们以后写代码可以用 m 代替 math
print(type(m))
print(m.pi)
print(m.pow(2, 3))
print(m.ceil(9.01))
print(m.floor(9.99))

image.png

我们使用 dir() 函数可以看出 math 模块中有很多的函数,但是我们写代码可能不需要这么多的函数,往往只需要其中的一两个即可,故我们没必要把所有函数都导入,这个时候就可以使用 from 模块名称 import 函数/变量/类 来导入部分的函数,并且以这种形式导入的这些函数不需要 .的调用,可直接使用:

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/20 21:12
# 欢迎大家关注AIoT相关博客~
from math import pi, floor
print(pi)
print(floor(9.99))

image.png

那么,我们不是自己也写了很多的模块嘛,是否可以像导入系统模块这样导入我们自己的模块呢?答案是:如果你和我一样下载的是最新版的 PyCharm,是可以的,如果你下载的原来版本的 PyCharm,需要一点额外的操作:

1️⃣ 新版 PyCharm 支持直接调用:

4.png

2️⃣ 如果你是老版的 PyCharm 需要右击目录,选择最下方的 Mark Dictionary as,选择 Sources Root,这样的操作后,你就可以像调用系统模块一样调用自己写的模块:

image.png


1.2 以主程序形式运行

🚩这部分概念字面理解起来晦涩难懂,没必要看下述定义,如果你很好奇,可以看一下如下定义:在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其它程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__变量的值为__main__

好的,如果我没猜错你没有看懂,无关紧要,我们用代码解释:


image.png

比如我们写好了 demo3,并且在 demo4 中导入了 demo3,我们在 demo4 中调用了 demo3 的 add 函数,显然我们只想计算 100 + 200 的值,但是程序的输出结果却是输出了两个数,这是因为我们的 demo3 中还附带这一个计算 10 + 20,这样的结果是我们不想要的,这时,我们既不想删除 demo3 中的 10 + 20,又不想让我们 demo4 在调用 demo3 时输出额外的东西,就可以在 demo3 中 写一行 main:

image.png

然后按下回车:并把 print(10 + 20) 放入 if 语句中,这样一来,在别的模块调用 demo3 时,不会输出 if 语句中的内容,只有当 运行 demo3 的时候,才会输出 if 语句中的内容

运行 demo4:

2.png

运行 demo3:

3.png

1.3 包

🚩包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下。包的作用:

1.代码规范

2.避免模块名称冲突

包与目录的区别:

包含__init__.py文件的目录称为包

目录里通常不包含__init__.py文件

建立包的方式:

image.png

可以看出,目录和包的区别就是包自带一个__init__.py文件:

image.png

包的导入语法结构:

import 包名.模块名

4.png




目录
相关文章
|
18天前
|
人工智能 Ubuntu IDE
【Python】基础:环境配置与基础语法
本文介绍了Python编程语言及其环境配置方法。Python由Guido van Rossum于1991年创建,以其简洁、易学和强大的功能著称。文章详细讲解了Python的主要特点、Windows和Ubuntu下的安装配置步骤、基础语法、控制流、函数、文件操作、模块使用及面向对象编程等内容,帮助读者快速入门Python编程。
48 4
|
8天前
|
存储 Python Perl
python正则语法
本文介绍了正则表达式的基础知识及其在 Python 中的应用。首先解释了为什么要使用正则表达式,通过一个判断手机号的示例展示了正则表达式的简洁性。接着详细介绍了 `re` 模块的常用方法,如 `match()`、`search()`、`findall()`、`finditer()` 等,并讲解了正则表达式的基本语法,包括匹配单个字符、数字、锚字符和限定符等。最后,文章还探讨了正则表达式的高级特性,如分组、编译和贪婪与非贪婪模式。
11 2
|
14天前
|
存储 程序员 开发者
Python编程入门:从零开始掌握基础语法
【10月更文挑战第21天】本文将带你走进Python的世界,通过浅显易懂的语言和实例,让你快速了解并掌握Python的基础语法。无论你是编程新手还是想学习一门新的编程语言,这篇文章都将是你的不二之选。我们将一起探索变量、数据类型、运算符、控制结构、函数等基本概念,并通过实际代码示例加深理解。准备好了吗?让我们开始吧!
|
1月前
|
存储 C语言 索引
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
本文全面介绍了Python的基础知识,包括Python的诞生背景、为什么学习Python、Python的应用场景、Python环境的安装、Python的基础语法、数据类型、控制流、函数以及数据容器的使用方法,旨在为Python零基础读者提供一篇全面掌握Python语法的博客。
35 0
Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法
|
15天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。
|
10天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
3天前
|
存储 人工智能 数据挖掘
从零起步,揭秘Python编程如何带你从新手村迈向高手殿堂
【10月更文挑战第32天】Python,诞生于1991年的高级编程语言,以其简洁明了的语法成为众多程序员的入门首选。从基础的变量类型、控制流到列表、字典等数据结构,再到函数定义与调用及面向对象编程,Python提供了丰富的功能和强大的库支持,适用于Web开发、数据分析、人工智能等多个领域。学习Python不仅是掌握一门语言,更是加入一个充满活力的技术社区,开启探索未知世界的旅程。
12 5
|
3天前
|
人工智能 数据挖掘 开发者
探索Python编程:从基础到进阶
【10月更文挑战第32天】本文旨在通过浅显易懂的语言,带领读者从零开始学习Python编程。我们将一起探索Python的基础语法,了解如何编写简单的程序,并逐步深入到更复杂的编程概念。文章将通过实际的代码示例,帮助读者加深理解,并在结尾处提供练习题以巩固所学知识。无论你是编程新手还是希望提升编程技能的开发者,这篇文章都将为你的学习之旅提供宝贵的指导和启发。
|
15天前
|
弹性计算 安全 小程序
编程之美:Python让你领略浪漫星空下的流星雨奇观
这段代码使用 Python 的 `turtle` 库实现了一个流星雨动画。程序通过创建 `Meteor` 类来生成具有随机属性的流星,包括大小、颜色、位置和速度。在无限循环中,流星不断移动并重新绘制,营造出流星雨的效果。环境需求为 Python 3.11.4 和 PyCharm 2023.2.5。
|
8天前
|
数据处理 Python
从零到英雄:Python编程的奇幻旅程###
想象你正站在数字世界的门槛上,手中握着一把名为“Python”的魔法钥匙。别小看这把钥匙,它能开启无限可能的大门,引领你穿梭于现实与虚拟之间,创造属于自己的奇迹。本文将带你踏上一场从零基础到编程英雄的奇妙之旅,通过生动有趣的比喻和实际案例,让你领略Python编程的魅力,激发内心深处对技术的渴望与热爱。 ###

热门文章

最新文章