Python 模块和包(1)

模块(Modules),可以理解为是对代码更高级的封装,即把能够实现某一特定功能的代码编写在同一个文件中,其后缀名是.py。并将其作为一个独立的模块,这样既可以方便其它程序或脚本导入并使用,同时还能有效避免函数名和变量名发生冲突。

import用法:

语法:import 模块名 as 别名

使用 Python 源文件,只需在另一个源文件里执行 import 语句。当 Python解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。

该方式会导入指定模块中的所有成员(包括变量、函数、类等)。不仅如此,当需要使用模块中的成员时,需用该模块名(或别名)作为前缀,否则 Python 解释器会报错。

from 模块名 import 成员名 as 别名

#导入sys模块的argv,winver成员

from sys import argv, winver

from 模块名 import *

#导入sys 棋块内的所有成员

from sys import *

自定义模块:为自定义模块添加说明文档,和函数或类的添加方法相同,即只需在模块开头的位置定义一个字符串即可。

import MyMod1

__name__属性 一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

每个模块都有一个__name__属性,当其值是’main’时,表明该模块自身在运行,否则是被引入

if __name__ == '__main__':print('程序自身在运行')speak()
else:print('我来自另一模块')

__all__变量 模块提供的 all 变量,该变量的值是一个列表,存储的是当前模块中一些成员(变量、函数或者类)的名称。即其他文件只能导入该变量指定的成员,未指定的成员是无法导入的。

注意:all 变量仅限于在其它文件中以“from 模块名 import *”的方式引入。否则该变量是无效的

__all__ = ["speak", "Class1"]

包 包是一个包含多个模块的文件夹,它的本质依然是模块,只不过在该文件夹下存在一个名为“init.py” 的文件

注意:每个包的目录下都必须建立一from 模块名 import *

init.py 的模块,可以是一个空模块,可以写一些初始化代码,其作用就是告诉 Python 要将该目录当成包来处理。

自定义模块:可以通过模板的 doc 属性,来访问模板的说明文档。

包其实本质上还是模块,因此导入模块的语法同样也适用于导入包。

在使用模块中的成员(变量、函数、类)时,需添加“包名.模块名”为前缀。

import 包名[.模块名 [as 别名]]

在使用模块中的成员(变量、函数、类)时,需添加“包名.模块名”为前缀。

import demo.Animaldemo.Animal.speak()

from 包名 import 模块名 [as 别名]

在使用其成员时不需要带包名前缀,但需要带模块名前缀。

from demo import Animal
Animal.speak()

from 包名.模块名 import 成员名 [as 别名]

```bash
from demo.Animal import Animal
obs=Animal('shi')
obs.speak()

通过 file 属性查找该模块(或包)文件所在的绝对路径(输出它的 init.py 文件的存储路径)。

import demo.Animal
print(demo.__file__) 

dir() 函数:用来列出某个类或者某个模块中的全部内容,包括变量、方法、函数和类等。

print(dir(demo.Animal))

help() 函数:用来查看某个函数或者模块的帮助文档。

print(help(str.lower))

参考:
https://blog.csdn.net/liuqinhou/article/details/129940672
https://blog.csdn.net/weixin_42405670/article/details/130856967

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/597517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF DatePicker与Calendar的使用和样式修改

什么是DatePicker,Calendar Calendar:日历(显示年月日视图控件)DatePicker:日期选择器(是一个更小的控件,点击控件时才会弹出一个日历) Calendar使用 常用属性 DisplayMode&#…

Linux_CentOS_7.9配置时区及NTPdate同步之简易记录

前言:ntpdate命令来自英文词组”NTPdate“的拼写,其功能是用于设置日期和时间。ntpdate命令能够基于NTP协议设置Linux系统的本地日期和时间,利用NTP服务的时钟过滤器来选择最优方案,大大提高了可靠性和精度,让系统时间…

2024,清洁家电卷向“全、智、廉、拓”与“出海”

文 | 智能相对论 作者 | 佘凯文 岁末,又到了一年一度盘点全年、筹划未来的重要节点。在今年经济大环境整体趋向稳定的背景中,许多行业都交还算过得去的成绩单,清洁家电正是其中一员。 特别是在整体家电大环境依旧严峻的前提下,…

Spring 面试题学习笔记整理

Spring 面试题学习笔记整理 Spring的理解IOC读取 xml注入 配置过程解析注解注入过程 高频 :IOC 理解 及原理 底层实现IoC的底层实现高频:Bean的生命周期(图解)高频:Bean的生命周期(文解)扩展知识…

【单片机项目实战】温度控制系统

本项目的主要作用是实现温度调控,通过设定一个预定的温度值,实现实时检测外界温度,当外界温度小于预定值时,电机正转,实现降温效果;当外界温度大于预定值时,电机反转,实现升温效果&a…

有详细一些的考研数学真题解析吗?

考研数学真题解析可以写得很详细,但是纸质资料可能受限于篇幅与排版等原因,没有把过程写得很详细。 但是,如果解析步骤不够详细的话,可能读者在看的时候就会因为其中某一个被省略的步骤而“卡壳”,进而需要花费很多额…

Linux驱动开发笔记(六):用户层与内核层进行数据传递的原理和Demo

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135384355 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

市场复盘总结 20240104

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: 方法一:指标选股 select * from dbo.ResultAll where 入选类型 like %指标选股% and 入选日期=20240104;方法二:趋势选股法 1、最低价持续3日上涨 2、均价…

YOLOv8改进 | 2023Neck篇 | 利用Gold-YOLO改进YOLOv8对小目标检测

一、本文介绍 本文给大家带来的改进机制是Gold-YOLO利用其Neck改进v8的Neck,GoLd-YOLO引入了一种新的机制——信息聚集-分发(Gather-and-Distribute, GD)。这个机制通过全局融合不同层次的特征并将融合后的全局信息注入到各个层级中,从而实现更高效的信息交互和融合。这种…

Spring之强大的DefaultListableBeanFactory

系列文章目录 如何查看类继承结构参考这里 文章目录 系列文章目录一、DefaultListableBeanFactory的类继承实现结构二、实现接口 一、DefaultListableBeanFactory的类继承实现结构 二、实现接口 AliasRegistry:支持别名功能,一个名字可以对应多个别名B…

【React系列】受控非受控组件

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. refs 的使用 在React的开发模式中,通常情况下不需要、也不建议直接操作DOM原生,但是某些…

在pycharm中执行 os.makedirs 提示用户名或密码不正确

问题:在pycharm中运行脚本,在 \10.0.21.249\share 共享目录下创建目录提示错误 发现:手动在该目录下创建目录没有问题。 解决方法: 切换到cmd 命令行运行该脚本成功创建 猜测:感觉应该是pycharm中使用的用户名和密码存…

蚂蚁矿机AntMiner T9+引出IO定义

这个板子只有s9的原理图参考,大部分一样但是也有很多改动。 下面是自己测出来的IO。全部为PL,没有PS引出。 共计56个引脚可用,但是不是都是完整的差分对,而且显然有些走线没办法高速跑。 测试方法 万用表先区分VCC GND和IO(对地…

python opencv怎么安装

1、安装python 注意:windows10 安装时强烈建议不用使用 Windows Store 安装。避免后期python运行时牵扯权限相关问题。 具体步骤: 1、前往python官网下载windows python 安装包 2、双击运行安装(强力建议自定义安装,勾选pip&#…

Hive11_Rank函数

Rank 1)函数说明 RANK() 排序相同时会重复,总数不会变 DENSE_RANK() 排序相同时会重复,总数会减少 ROW_NUMBER() 会根据顺序计算 2)数据准备 3)需求 计算每门学科成绩排名。 4)创建本地 score.txt&…

vue3.0vue2.0-prop

注:本篇涉及到的知识点&#xff0c;组合式<script setup>模式以及vue2.0和vue3.0选项式&#xff0c;组合式中非<script setup>模式&#xff0c;使用比较少&#xff0c;不再讲解&#xff0c;可自行看官网 目录 一、vue3.0组合式 1、vue3.0组合式prop传值: 父组件…

【ZYNQ实验】第一篇、ZYNQ驱动HDMI显示图片

目录 第一部分、实验说明 1、点名过来看 2、实验说明 2.1、涉及到的知识 2.2、使用的硬件 3、测试效果 3.1、实验一效果 3.2、实验二效果 4、写在前面 5、参考文献 第二部分、硬件搭建 第三部分、实现方法 1、实验一 1.1、实验一原理图 1.2、MATLAB图片转换代码…

Rosalind 039 Expected Number of Restriction Sites

这个问题结合了分子生物学中的限制性酶&#xff08;restriction enzymes&#xff09;的概念和概率统计学的应用。 生物背景&#xff1a; 限制性酶&#xff1a;细菌使用这些酶来切割病毒DNA的双链&#xff0c;从而使病毒失去功能。这些酶在病毒DNA上切割的位置被称为限制位点。…

适合 C++ 新手学习的开源项目——在 GitHub 学编程

作者&#xff1a;HelloGitHub-小鱼干 俗话说&#xff1a;万事开头难&#xff0c;学习编程也是一样。在 HelloGitHub 的群里&#xff0c;经常遇到有小伙伴询问编程语言如何入门方面的问题&#xff0c;如&#xff1a; 我要学习某一门编程语言&#xff0c;有什么开源项目可以推荐…

nginx下upstream模块详解

目录 一&#xff1a;介绍 二&#xff1a;特性介绍 一&#xff1a;介绍 Nginx的upstream模块用于定义后端服务器组&#xff0c;以及与这些服务器进行通信的方式。它是Nginx负载均衡功能的核心部分&#xff0c;允许将请求转发到多个后端服务器&#xff0c;并平衡负载。 在upst…