极简Python语法(5)

本文深入探讨Python模块,涵盖模块概述、如何创建自定义模块以及模块的搜索目录。通过实例展示了如何避免导入冲突,并解释了import语句的使用方式,包括导入指定模块、给模块起别名以及导入所有定义。
部署运行你感兴趣的模型镜像

10、模块

10.1 模块概述

   一个函数相当于一个积木,一个模块中可以包含很多函数。在Python中,一个扩展名为.py的文件就称为一个模块。

   通常把能够实现某一特定功能的代码放置在一个文件中作为一个模块,方便其他程序和脚本导入并使用。

10.2 自定义模块

  1. 创建模块

   将模块中相关的代码编写在一个单独的文件中,并且将该文件命名为“模块名+.py”。

  1. 使用import导入模块

import modulename as alias:导入模块,起别名

   创建用于计算BMI指数的模块,命名为bmi.py

def fun_bmi(person, height, weight):
    print(person + '的身高:' + str(height) + '米\t体重:' + str(weight) + '千克')
    bmi = weight / (height * weight)
    print(person + '的BMI指数是:' + str(bmi))

   创建main.py文件,导入bmi模块:

import bmi
bmi.fun_bmi('bernardo', 1.72, 62.5)
'''
bernardo的身高:1.72米	体重:62.5千克
bernardo的BMI指数是:21.12628447809627
'''

   在调用模块中的变量、函数或者类时,需要在变量名、函数名或者类名前添加“模块名.”作为前缀。如果比较长不容易记住,则使用import bmi as m这样的语法给模块名字起别名,方便记忆。

  1. 使用from...import导入模块

   这样就无需在使用的时候添加前缀,直接访问具体的变量、函数和类名等即可。

from modulename import *:从模块中导入全部定义。

from bmi import *
fun_bmi('bernardo', 1.72, 62.5)
'''
bernardo的身高:1.72米	体重:62.5千克
bernardo的BMI指数是:21.12628447809627
'''

   导入两个包括同名函数的模块,分别定义名为rectangle.pycircle.py两个文件,文件内容如下:。

rectangle.py:

def girth(width, height):
    return (width + height) * 2

def area(width, height):
    return width * height

if __name__ == '__main__':
    print(area(10, 23))
'''
230
'''

circle.py

import cmath
def girth(r):
    return 2 * cmath.pi * r

def area(r):
    return cmath.pi * (r ** 2)

if __name__ == '__main__':
    print(area(12))
'''
452.3893421169302
'''

compute.py

from rectangle import *
from circle import *
if __name__ == '__main__':
    print('圆周长是:', girth(10))
    print('矩形周长是:', girth(12, 13))
'''
圆周长是: 62.83185307179586
TypeError: girth() takes 1 positional argument but 2 were given
'''

显然上述程序报错,原因是想要执行矩阵模块中的函数被圆的模块中的函数覆盖了,解决方法就是不使用from...import语句的导入,直接使用import语句导入,修改后为:

import rectangle as r
import circle as c
if __name__ == '__main__':
    print('圆周长是:', c.girth(10))
    print('矩形周长是:', r.girth(12, 13))
'''
圆周长是: 62.83185307179586
矩形周长是: 50
'''

10.2.4 模块搜索目录

   当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找。

  • 在当前目录(即执行的Python脚本文件所在目录)下查找。
  • 到PYTHONPATH(环境变量)下的每个目录中查找.
  • 到Python的默认安装目录下查找。
import sys
for i in sys.path: # 将列表中的每一项打印出来
    print(i)
'''
C:\Users\包文强\Desktop\python练习\模块练习
C:\Users\包文强\Desktop\python练习
C:\Users\包文强\Desktop\TianChi_YiDongTuiJian_forecast-master\venv\Scripts\python35.zip
D:\Anaconda3\envs\tf2\DLLs
D:\Anaconda3\envs\tf2\lib
D:\Anaconda3\envs\tf2
C:\Users\包文强\Desktop\TianChi_YiDongTuiJian_forecast-master\venv
C:\Users\包文强\Desktop\TianChi_YiDongTuiJian_forecast-master\venv\lib\site-packages
D:\Anaconda3\envs\tf2\lib\site-packages
D:\Anaconda3\envs\tf2\lib\site-packages\win32
D:\Anaconda3\envs\tf2\lib\site-packages\win32\lib
D:\Anaconda3\envs\tf2\lib\site-packages\Pythonwin
D:\PyCharm 2018.1.4\helpers\pycharm_matplotlib_backend
'''

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值