global关键字
global关键字允许在当前作用域之外修改变量。它用于创建全局变量并在局部上下文中对该变量进行更改。
基本规则:
示例:
可以用global关键字解决:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GEgF0JgA-1683716547385)(null)]
跨python模块的全局变量
在Python中,可以创建一个模块config.py来保存全局变量,并在同一程序中的Python模块之间共享信息。
【该模块config.py存储a和b的全局变量。在update.py文件中,我们导入config.py模块并修改a和b的值。同样,在main.py文件中,我们同时导入config.py和update.py模块。最后,我们打印并测试全局变量的值,无论它们是否更改。】
嵌套函数中的全局变量
【在上面的程序中,我们在嵌套的函数bar()中声明全局变量。在foo()函数中,x对全局关键字没有影响。
在调用bar之前和之后,变量x接受局部变量的值,即x =20。在foo函数之外,变量x将采用bar函数中定义的值,即x =25。这是 因为我们在x中使用了global关键字在bar函数(局部作用域)内创建了全局变量。
如果我们在bar()函数中做了任何更改,那么这些更改就会出现在局部作用域之外,即foo()。】
模块
模块是指包含Python语句和定义的文件。
包含Python代码的文件,例如:example.py,称为模块,其模块名称为example。
可以在模块中定义最常用的函数并将其导入,而不是将其定义复制到其他程序中。
例子:
创建一个模块example.py
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g4W62nsi-1683716547399)(null)]
导入模块
使用import name(模块名)
来导入
重命名导入
【可以使用别名m来指代math模块】
使用模块
可以使用点. 运算符访问函数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GKlFAKcW-1683716547378)(null)]
from…import
可以从模块导入特定名称,而无需整体导入模块。
导入所有名称
dir()内置函数
使用dir()函数找出在模块内部定义的名称。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n37hTNwh-1683716547419)(null)]
包(Package)
我们通常不会把所有的文件都存储在同一个地方。我们使用一个组织良好的目录层次结构,以方便访问。
我们将相似的模块放在一个包中,而将不同的模块放在不同的包中。这使项目(程序)易于管理且概念清晰。
目录必须包含一个名为 _init_.py 的文件,Python才能将其视为一个包。该文件可以保留为空,但是我们通常将该程序包的初始化代码放入此文件中。
从包中导入模块
我们可以使用点(.)运算符从包中导入模块