Python学习笔记(十四):模块高级

PyTorch实战(13)——图卷积网络(Graph Convolutional Network,GCN) 图卷积网络 (Graph Convolutional Network, GCN) 模型能够同时结合节点级特征和图级(邻域)信息进行分类,显著提升了图数据建模能力,适用于节点分类、图分类等多种任务。本节中,我们通过 PyTorch Geometric 库在 CiteSeer 图数据集上构建模型,们首先用前馈神经网络作为基线模型完成节点分类任务,随后用 GCN 模型替代前馈网络显著提升了分类准确率。 阅读详情

以Mark Lutz著的《Python学习手册》为教程,每天花1个小时左右时间学习,争取两周完成。 --- 写在前面的话


2013-7-23 21:30 学习笔记

1,包导入是把计算机上的目录变成Python的命名空间。包导入时也可以使用import和from语句。目录路径只能以点号.间隔。例如有这样一个目录结构:

dir0/dir1/dir2/mod.py
则导入语句如下:

import dir1.dir2.mod
导入时必须遵循如下规则:

  • dir1和dir2目录中必须含有一个__init__.py文件
  • dir0是容器,不需要__init__.py文件;如果有,也会被忽略
  • dir0必须列在模块搜索路径中(即dir0必须是主目录,或是列在PYTHONPATH中,或是在.pth文件中)

2,__init__.py可以包含Python代码,也可以为空。它可以防止Python搜到名称相同的目录。通常__init__.py中会让一些初始化的代码。Python在首次导入时会自动执行该文件。

3,使用from *语句时,需要在__init__.py文件中用__all__列表定义需要导入的子模块的名称清单。

# File: dir1/__init__.py
x = 1
print 'dir1 init'

# File: dir1/dir2/__init__.py
y = 2
print 'dir2 init'

# File: dir1/dir2/mod.py
z = 3
print 'in mod.py'
导入包:

import dir1.dir2.mod
print dir1.x
print dir1.dir2.y
print dir1.dir2.mod.z
第一次执行该文件,输出结果:

dir1 init
dir2 init
in mod.py
1
2
3

4,在模块中隐藏数据是一种惯例,而不是一种语法约束。

5,使用from *语句时,Python会先寻找模块内的__all__列表,把其中的变量复制出来;如果没有定义__all__,则会复制开头没有单下划线(_X)的所有变量名。

__all__ = ["var1", "var2", "var3"]
要注意,这些约定只对from *有效,对import无效。

6,有些新的扩展特性需要使用类似如下的代码来导入。例如:

from __future__ import featurename

7,每个模块都有一个__name__内置属性,Python会自动设置它。如果文件以顶层程序文件运行,__name__属性会被设置成'__main__';如果文件被导入,__name__会被设置成客户端所了解的模块名。该特性常用来实现单元测试。例如:

def test():
	print "This is a test."
	
if __name__ == '__main__':
	test()

8,通过修改sys.path的值可以修改模块的搜索路径。但这中修改只在该进程中才有效,Python结束后一切恢复如初。例如:

import sys
print sys.path
sys.path.append(r'd:\a\b')
print sys.path
输出结果为:

['', 'C:\\Python27\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages']
['', 'C:\\Python27\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages', 'd:\\a\\b']

9,imort as扩展可以让模块在脚本中有自定义的名称,这可以让一些名称较长的变量具有短名称。包导入时也可以使用。例如:

import longmodulename as name1
from module imort longname as name2

10,由于import和from语句总是默认在sys.path的绝对路径中寻找模块,这使得如果当前目录下有个模块文件名与系统模块名重名,则会导入系统模块名。通过在from语句中使用.(表示当前目录)和..(表示当前目录的父目录)可以实现相对导入,从而避免这个问题。例如:

from . import D			# imports A.B.D
from .. import E		        # imports A.E
from ..F import G		# imports A.F.G

11,通常情况下,最好不要通过导入和重载来启动程序。

12,函数主体内的代码在函数被调用时采用执行。

13,不能递归imort,即不能A模块import B模块,B模块import A模块

14,通过变量名字符串导入模块有两种方法:

  • 使用exec语句。缺点是每次执行时都必须编译import语句。默认情况下会走当前作用域内执行代码,也可以通过传入参数来自定义。例如:

modname = 'mod'
exec 'import ' + modname

  • 使用内置的__import__函数,如果需要多次执行,这个方法可能会快一点。__import__方法会返回模块对象。

modname = 'mod'
mod = __import__(modname)





纯方位观测下的三维定位,IV-PLKF(Inverse Velocity-Weighted Pseudo-Linear Kalman Filter) 在现代定位系统中,纯方位观测因其无需测距设备的优势,在无线通信、无人机导航和室内定位等领域备受关注。本文深入探讨基于算法的三维定位方法,并提供完整的MATLAB仿真例程。 阅读详情

相关推荐

【Chipyard】Gemmini快速上手

Gemmini 加速器在 ResNet50 推理任务中表现出计算密集型优势,核心操作周期分布符合深度学习模型特征,推理预测流程完整且测试通过,为后续硬件优化和模型部署提供了有效参考。

2359

pytorch 版本信息造成的错误

1......torch/autograd/__init__.py", line 90, in backward allow_unreachable=True) # allow_unreachable flag RuntimeError: one of the variables needed for gradient computation has been modified by an i...

qxqsunshine的博客 6680

【AirSim+PX4】WSL2上运行PX4连接Airsim步骤

在 Linux 命令行中输入以下命令以添加(或改变)环境变量。注意,此处的 IP 地址应为。4.启动 sln 文件的调试以进入 UE4 编辑器,并在 Linux 中启动 PX4。

m0_53538421的博客 1505

python有木有哪些必须要学习的高级模块

python有木有哪些必须要学习的高级模块 字母表 转载于:https://www.cnblogs.com/ITniu/p/6474323.html

angel192939的博客 142

MuMu模拟器过检测实战:从硬件伪装到API欺骗的完整避坑指南

本文详细介绍了MuMu模拟器过检测的实战技术,从硬件伪装到API欺骗的全方位解决方案。通过修改CPU/GPU信息、内存分布、系统属性和行为模拟等关键技术,帮助用户有效绕过现代应用的模拟器检测机制,提升模拟器的隐蔽性和稳定性。

xxx12的博客 1392

利用GeoTools高效切割GeoTIFF为WebP瓦片:从配置到实战

本文详细介绍了如何利用GeoTools将GeoTIFF高效切割为WebP瓦片,从环境配置到实战技巧全面覆盖。通过对比WebP与PNG格式的优势,展示其在体积压缩和传输效率上的显著提升,并提供多线程切割、内存管理等性能优化方案,帮助开发者快速实现地理空间数据的Web地图服务部署。

agile9scrum的博客 815

关于安装python包dlib以及包face_recognition导入失败出现以下情况的解决办法

错误信息 Collecting dlib Using cached https://files.pythonhosted.org/packages/54/ff/5781a11bdc0d1c90a813f3f66d460abf628e5114856a842d18d43f709a7a/dlib-19.10.0.tar.gz Building wheels for collected packages:...

BA_KA的博客 8589

Labview 机器视觉(4)之 图像处理进阶 - 动态ROI与批量保存

本文深入探讨了LabVIEW机器视觉中动态ROI与批量保存两大进阶技术。动态ROI通过模式匹配或粒子分析实现检测区域的自动追踪,解决了产品位置变化带来的挑战。同时,文章详细介绍了如何设计高效的文件命名规则与异步保存机制,以实现海量图像数据的批量保存与管理,从而构建稳定、高效的工业自动化检测系统。

weixin_29234423的博客 219

File "manage.py", line 14 ) from exc ^ SyntaxError: invalid syntax出错的原因及解决方法

1. 问题 在linux上安装django,并将项目上传后,执行python manage.py runserver 时,报错了,报错如下: File "manage.py", line 14 ) from exc ^ SyntaxError: invalid syntax 原因是因为我是用pip3安装的django(pip3 install django),但是...

乙壳虫的博客 1万+

手把手教你在飞牛 NAS 上部署自有图床,含Python调用接口

📸 想在飞牛 NAS 上部署图床?这篇教程超适合小白!从安装到使用,步骤清晰~

XiaoqiangClub的博客 2345

多思计组实验实验三、存储器读写实验

实验三、存储器读写实验

qq_53089329的博客 3652

pyinstaller打包python代码比较有用的资源总结

文章1:pyinstaller安装wins下打开命令窗口,输入pip install pyinstaller1或者在pyinstaller官网http://www.pyinstaller.org/下载相应的版本,解压后,命令窗口进入解压目录,输入python setup.py install1python程序发布安装完成后,打开命令窗口,切换目录到python文件所在目录,输入pyinstalle...

qq_33485434的博客 7366

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python学习笔记(二十四)- 高级的模块话题(Advanced Module Topics)

1.名称以单个下划线开头的模块顶层变量有什么重要意义? 答:当使用 from * 语句形式时,名称以单个下划线开头的模块顶层的变量不会复制到导入作用域内。但是,它们仍然可以通过import 或普通的 from 语句形式访问。 __all__ 列表是类似的,但逻辑相反;它的内容是从 * 中复制出来的唯一名称。 2.当模块的 __name__ 变量是字符串 "__main__" 时,它是什么意思?...

Enderman_xiaohei的博客 496

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Python 高级构造:Python 集合模块

首先使用 namedtuple() 函数定义 namedtuple() 对象的结构,并将 names 作为其位置,并通过将值传递给初始化的对象来初始化元组对象。Python中的模块只是包含Python代码的“.py”或python文件,这些代码可以包含特定内置函数的代码,并且可以导入到其他Python程序中,以便更轻松地使用内置函数。首先,在 deque() 函数中传递一个列表, 然后我们使用 append() 和 appendleft() 函数在两端添加项目,然后打印出来。

新华编程特战队 1841

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python中shutil模块的用法-高级文件操作模块

python中shutil模块的用法-高级文件操作模块复制、移动、删除、打包操作

caribbean666的博客 7996

Python 高级构造:Python 中的模块

Python中的模块是包含相同定义和语句的 python 文件。它包含 Python函数类或变量。Python 中的模块以扩展名 .py 保存。import 语句用于将一个模块的所有功能导入到另一个模块。在这里,我们必须注意,我们可以通过将任何 Python 源文件作为模块导入到另一个 Python 源文件中来使用该文件的功能。我们可以用一个 import 语句导入多个模块,但一个模块只加载一次,而不管它被导入到我们的文件中多少次。

新华编程特战队 1407

Python模块导入,别out了,看看这些高级玩法!

在Python中,最直接的模块导入方式是使用import关键字后跟模块名。此方法会将整个模块作为一个命名空间导入,之后通过模块名访问其内部定义的功能

xyh2004的博客 1688

Python学习笔记【高级篇】

由于Python相关内容太多了,所以分成三个版块发布,分别为:基础篇、进阶篇、高级篇,大家也别纠结某些模块分到了进阶还是高级里,我也是参考书中的分类,综合下来区分的,这个没必要纠结。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。**.Python-多任务(线程、进程、协程)编程模块**

Trb201012的博客 433

【Python学习手册(第四版)】学习笔记24-高级模块话题

本文是作为第五部分(模块)的结尾,拓展了模块相关的话题、陷阱,主要介绍了数据隐藏、__future__模块、__name__变量、sys.path修改、列表工具、通过名称字符串来运行模块、过渡式重载等,以及列举了模块相关的常见错误(主要是from导入),从而在代码中避免发生类似的错误。大家视需要读取。

兴焉的博客 1358

Python 高级构造:Python DateTime 模块

此类接受 7 个属性 Year、Month、Day、Hour、Minutes、Seconds、MilliSeconds,顺序如下(年、月、日、小时、分钟、秒、毫秒)。此类接受 7 个属性 Year、Month、Day、Hour、Minutes、Seconds、MilliSeconds,顺序如下(年、月、日、小时、分钟、秒、毫秒)。此功能帮助我们以不同类型的格式表示日期,例如短/长日(周一、星期一)、短/长年(21、2021)、数字/字母月份(03、三月)。此函数返回用户输入的日期的月计数。

新华编程特战队 1361

Python中常用的模块和高级语法整理总结

总结Python中常用的模块和一些高级语法

Luoyingfeng的博客 1532

Python学习笔记:常用第三方模块(1)

前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖子,廖雪峰的课程连接在这里:廖雪峰 Python的相关介绍,以及它的历史故事和运行机制,可以参见这篇:python介绍 Python的安装可以参见这篇:Python安装 Python的运行模式...

去向前方的博客 1万+

Python模块详解:从基础到高级应用

模块化编程是现代软件开发的核心概念,通过将代码组织为独立的模块单元,可以显著提升代码的可维护性和复用性。Python模块作为.py文件实现,支持函数、类和变量的封装。从技术原理看,Python解释器通过sys.path定义的搜索路径定位模块,支持多种导入方式满足不同场景需求。在实际工程中,合理使用标准库模块和第三方包能极大提升开发效率,而模块文档规范和测试实践则是保证代码质量的关键。本文以Python模块为核心,详细解析了模块创建、导入机制、包管理以及高级技巧,帮助开发者掌握模块化编程的最佳实践。

weixin_33895516的博客 362

Python学习笔记--模块

Python学习笔记--模块,math、random、time、datetime、os、自定义模块、第三方模块

qq_50259950的博客 530

Python模块详解:从基础概念到高级应用

模块化编程是现代软件开发的核心范式,Python通过模块机制实现代码复用与组织。从技术原理看,模块本质是包含Python定义和语句的文件,其导入机制涉及sys.path搜索路径和字节码缓存。这种设计既提升了代码复用率,又通过命名空间隔离保障了工程可维护性。在实际开发中,标准库模块如os、sys提供系统级操作能力,而collections、json等模块则优化了数据处理流程。对于第三方模块管理,pip工具配合虚拟环境能有效解决依赖问题。高级应用场景包括动态导入实现插件架构,以及通过Cython编写高性能扩展模

weixin_30696427的博客 407

Python模块化编程:从基础到高级应用

模块化编程是现代软件开发的核心范式,Python通过模块(module)和包(package)机制实现代码组织与复用。模块本质上是一个包含Python定义和语句的.py文件,通过import系统实现代码复用。理解模块搜索路径(sys.path)和导入机制是掌握Python工程化的基础,这涉及内置模块、第三方包和自定义模块的加载顺序。在实际开发中,标准库模块如os、datetime和json提供了操作系统交互、时间处理和数据序列化等基础能力。良好的模块设计遵循单一职责原则,通过__init__.py文件管理包

weixin_34405354的博客 343
上一篇: Python学习笔记(十三):模块基础
下一篇: Python学习笔记(十五):类基础
mathboylinlin
博客等级 码龄18年 101粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值