首页 > 编程语言 >无涯教程-Python - 模块语句

无涯教程-Python - 模块语句

时间:2023-08-25 18:33:19浏览次数:46  
标签:__ 教程 Python 无涯 Phone 导入 模块 import

模块使您可以逻辑地组织Python代码。将相关代码分组到一个模块中可以使代码更易于理解和使用。

名为 aname 的模块的Python代码通常位于名为 aname.py 的文件中。这是一个简单模块support.py的示例

def print_func( par ):
   print "Hello : ", par
   return

Import 语句

您可以通过在其他一些Python源文件中执行import语句,将任何Python源文件用作模块。 import 具有以下语法-

import module1[, module2[,... moduleN]

当解释器遇到import语句时,如果模块在搜索路径中存在,它将导入模块。如要导入模块support.py,您需要在脚本顶部放置以下命令-

#!/usr/bin/python

# 导入support模块
import support

# 现在您可以按如下方式调用该模块的定义函数
support.print_func("Learnfk")

执行以上代码后,将产生以下输出-

Hello : Learnfk

from...import 语句

使用Python的 from 语句,您可以将模块中的特定属性导入当前名称空间。 from ... import 具有以下语法-

from modname import name1[, name2[, ... nameN]]

如,要从模块fib导入函数fibonacci,请使用以下语句-

from fib import fibonacci

该语句不会将整个模块fib导入当前名称空间;它只是将fib模块中的fibonacci项引入到导入模块的全局符号表中。

from...import * 语句

也可以使用以下import语句将所有数据从模块导入到当前名称空间中-

from modname import *

这提供了一种将所有项目从模块导入当前名称空间的简便方法。但是,应谨慎使用此语句。

Locating 模块

导入模块时,Python解释器按以下顺序搜索模块-

  • 当前目录。

  • 如果未找到模块,Python将在Shell程序变量PYTHONPATH中搜索每个目录。

  • 如果所有其他方法均失败,Python将检查默认路径。在UNIX上,此默认路径通常为/usr/local/lib/python/。

模块搜索路径作为 sys.path 变量存储在系统模块sys中。 sys.path变量包含当前目录PYTHONPATH和依赖于安装的默认目录。

PYTHONPATH 变量

PYTHONPATH是一个环境变量,由目录列表组成。 PYTHONPATH的语法与shell变量PATH的语法相同。

这是Windows系统中的典型PYTHONPATH-

set PYTHONPATH=c:\python20\lib;

这是来自UNIX系统的典型PYTHONPATH-

set PYTHONPATH=/usr/local/lib/python

命名空间和作用域

如,无涯教程在全局名称空间中定义变量 Money 。在函数 Money 中,为 Money 分配了一个值,因此Python假定 Money 为局部变量。但是在设置之前访问了局部变量 Money 的值,因此输出为UnboundLocalError。取消注释全局语句即可解决该问题。

#!/usr/bin/python

Money=2000
def AddMoney():
   # 取消注释以下行以修复代码:
   # global Money
   Money=Money + 1

print Money
AddMoney()
print Money

dir() 函数

内置的dir()函数返回一个包含由模块定义的名称的排序列表,该列表包含模块中定义的所有模块,变量和功能的名称。

#!/usr/bin/python

# Import built-in module math
import math

content=dir(math)
print content

执行以上代码后,将产生以下输出-

['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 
'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 
'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 
'sqrt', 'tan', 'tanh']

在这里,特殊字符串变量 __ name __ 是模块的名称,而 __ file __ 是从中加载模块的文件名。

globals() & locals() 函数

globals() 和 locals() 函数可用于在全局和本地命名空间中返回名称,具体取决于调用它们的位置。

如果从函数内调用locals()  , 它将返回所有可以从该函数本地访问的名称。

如果从函数内调用globals(),它将返回所有可以从该函数全局访问的名称。

Reload() 函数

将模块导入脚本时,模块顶级部分中的代码仅执行一次。

因此,如果您想重新执行模块中的顶级代码,则可以使用 reload()函数。 reload()函数再次导入以前导入的模块。 reload()函数的语法如下:

reload(module_name)

在这里, module_name 是您要重新加载的模块的名称,而不是包含模块名称的字符串。如,要重新加载 hello 模块,请执行以下操作-

reload(hello)

Python 软件包

程序包是一种分层的文件目录结构,它定义了一个单独的Python应用程序环境,该环境由模块,子程序包和子子程序包等组成。

考虑在 Phone 目录中可用的文件 Pots.py 。该文件具有以下源代码行-

#!/usr/bin/python

def Pots():
   print "I'm Pots Phone"

类似地,还有另外两个文件,它们具有不同的功能,其名称与上面相同-

Phone/Isdn.py 拥有 Isdn函数。

Phone/G3.py  拥有G3函数

现在,在 Phone 目录中再创建一个文件__init__.py

  • Phone/__ init__.py

要在导入Phone时使所有功能可用,您需要在__init__.py中放入显式import语句,如下所示:

from Pots import Pots
from Isdn import Isdn
from G3 import G3

将这些行添加到__init__.py之后,导入Phone程序包时,所有这些类都将可用。

#!/usr/bin/python

# Now import your Phone Package.
import Phone

Phone.Pots()
Phone.Isdn()
Phone.G3()

执行以上代码后,将产生以下输出-

I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone

参考链接

https://www.learnfk.com/python/python-modules.html

标签:__,教程,Python,无涯,Phone,导入,模块,import
From: https://blog.51cto.com/u_14033984/7234151

相关文章

  • centos7实现开机自启动Python脚本
    在Linux系统中,你可以使用不同的方法来实现开机自启动Python脚本和确保守护进程不挂掉。以下是一些常用的方法:1.开机自启动Python脚本:使用rc.local文件(适用于一些旧的系统):编辑/etc/rc.local文件,将你希望在系统启动时运行的命令或脚本添加到文件中。确保给脚本提供正确的路径。......
  • 软件测试|数据处理神器pandas教程(十三)
    Pandas迭代方法进行数据遍历和操作在数据处理和分析中,经常需要对数据进行遍历和操作。Pandas是Python中用于数据处理和分析的强大库,提供了多种迭代方法来处理数据。本文将介绍Pandas中的迭代方法,并展示它们在数据处理中的应用。引言在数据处理中,遍历数据是一项常见任务,用于访......
  • 软件测试|数据处理神器pandas教程(十四)
    Pandas排序:数据整理与分析的有力工具前言Pandas是一个强大的Python数据处理库,提供了丰富的功能和灵活的操作方式。其中,排序是一项重要的数据整理和分析任务。本文将介绍如何使用Pandas进行排序操作,以及它在数据分析中的作用。排序的重要性和应用场景无论是数据清洗、特征选择......
  • 软件测试|数据处理神器pandas教程(十五)
    Pandas去重函数:drop_duplicates()的数据清洗利器前言在数据处理和分析中,重复数据是一个常见的问题。为了确保数据的准确性和一致性,我们需要对数据进行去重操作。Pandas提供了一个功能强大的去重函数——drop_duplicates(),它可以帮助我们轻松地处理数据中的重复值。本文将详细介......
  • 软件测试|web自动化测试神器playwright教程(三十七)
    使用Playwright的highlight()方法突出显示Web元素简介Playwright是一个强大的自动化测试工具,可以与Python集成,用于测试Web应用程序和执行自动化任务。其中,highlight()方法是Playwright的一个有用功能,可以突出显示Web页面上的元素,方便调试和可视化操作。本文将介绍Playwright库......
  • Python的占位——pass
    pass:常用于代码占位a=10ifa>100:pass当设计代码时,有些条件或代码还没有想好要如何处理,先用pass做占位,后续可以回来继续写。如果不写pass则会报错,因为代码不完整。......
  • Python——for循环
    字符串是可迭代的for循环:  for变量in可迭代的东西:    代码for循环把可迭代的东西中的每一项内容拿出来.挨个的赋值给变量.每一次赋值都要执行一次循环体(代码)s="你好啊,我叫赛利亚"forcins:print("取值:",c)输出结果是列表、元组、字典......
  • python将word文档转为pdf
    用python处理word文档,将word文档转换为pdf文档,可以使用docx2pdf模块。使用pip安装即可。关键代码如下:fromdocx2pdfimportconvertconvert("需要转换的word文档","生成的pdf文档")如果需要批量进行转换的话,最好是每一个后面加点延时,并做好异常处理。......
  • Python入门第四天
    今日内容概要字符串——列表——字典——元组——集合——布尔——与用户交互——格式化输出数据类型之字符串(str)作用:用来记录人的名字,家庭住址,性别等描述性质的状态定义: 方式一: username='kevin'#单引号      方式二:username="kevin"#双引号方式......
  • Pandas 使用教程 CSV
    CSV(Comma-SeparatedValues,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。AttributeError:partiallyinitializedmodule'pandas'hasnoattribute......