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




目录
相关文章
|
3月前
|
IDE 数据挖掘 开发工具
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
60 7
|
1月前
|
存储 开发者 Python
python基本语法
Python的基本语法简洁而强大,支持多种编程范式,包括面向对象编程和函数式编程。通过掌握变量和数据类型、操作符、控制结构、函数、类和模块等基本概念,可以有效地编写高效、可读的Python代码。无论是初学者还是经验丰富的开发者,Python都提供了丰富的工具和库来满足各种编程需求。
73 13
|
3月前
|
存储 索引 Python
Python 的基本语法
这些是 Python 的基本语法要素,掌握它们是学习和使用 Python 的基础。通过不断地实践和应用,你将能够更深入地理解和熟练运用这些语法知识,从而编写出高效、简洁的 Python 代码
171 61
|
2月前
|
关系型数据库 开发者 Python
Python编程中的面向对象设计原则####
在本文中,我们将探讨Python编程中的面向对象设计原则。面向对象编程(OOP)是一种通过使用“对象”和“类”的概念来组织代码的方法。我们将介绍SOLID原则,包括单一职责原则、开放/封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则有助于提高代码的可读性、可维护性和可扩展性。 ####
|
3月前
|
存储 Python
Python编程入门:理解基础语法与编写简单程序
本文旨在为初学者提供一个关于如何开始使用Python编程语言的指南。我们将从安装Python环境开始,逐步介绍变量、数据类型、控制结构、函数和模块等基本概念。通过实例演示和练习,读者将学会如何编写简单的Python程序,并了解如何解决常见的编程问题。文章最后将提供一些资源,以供进一步学习和实践。
82 1
|
人工智能 分布式计算 前端开发
3大阶段,30+教程,超全年度 Python 礼包大放送 | 技术日报(15期)
Python简单易懂,功能强大,同时也是大数据、人工智能时代的首选编程语言之一。这两年 Python 如破竹之势一般出现在开发者眼前,甚至有许多非技术人员也会想通过学习 Python 来提高自己的工作效率。这么火的语言,开发者社区当然要为你带来 “Python 学习大礼包” 了!
997 0
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80
|
24天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码

热门文章

最新文章