模块 家庭作业帮助服务 - Assignment Help

模块家庭作业帮助

一个模块允许您逻辑地组织您的Python代码。将相关代码分组到一个模块中,使代码更容易理解和使用。一个模块是一个具有任意命名的属性的Python对象,可以绑定和引用。

简单来说,一个模块是一个由Python代码组成的文件。模块可以定义函数,类和变量。模块还可以包括可运行的代码。

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

def print_func(par):

   打印“你好:”,par

   返回

进口报关单

您可以通过在其他Python源文件中执行import语句来将任何Python源文件用作模块。导入具有以下语法:

import module1 [,module2 [,… moduleN]

当解释器遇到导入语句时,如果该模块存在于搜索路径中,它将导入该模块。搜索路径是导入模块之前解释器搜索的目录的列表。例如,要导入模块support.py,您需要将以下命令放在脚本的顶部 –

#!/ usr / bin / python

#导入模块支持

导入支持

#现在可以调用模块的定义函数,如下所示

support.print_func(“Zara”)

当执行上述代码时,会产生以下结果 –

你好:Zara

模块只能加载一次,而不管导入的次数。这样可以防止在多次导入时重复执行模块。

从…导入声明

Python的from语句允许您将模块中的特定属性导入到当前命名空间中。从…导入具有以下语法 –

从modname import name1 [,name2 [,… nameN]]

例如,要从module fib导入函数fibonacci,请使用以下语句 –

从纤维进口fibonacci

此语句不会将整个模块fib导入当前命名空间;它将项目fibonacci从模块fib引入导入模块的全局符号表。

来自… import *语句:

还可以使用以下import语句将模块中的所有名称导入到当前命名空间中 –

从modname导入*

这提供了将模块中的所有项导入到当前命名空间中的简单方法;但是,这个说法应该谨慎使用。

定位模块

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

当前目录。

如果没有找到该模块,Python会在shell变量PYTHONPATH中搜索每个目录。

如果其他所有失败,Python将检查默认路径。在UNIX上,这个默认路径通常是/ usr / local / lib / python /。

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

PYTHONPATH变量:

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

以下是Windows系统中的典型PYTHONPATH:

设置PYTHONPATH = c:\ python20 \ lib;

这里是一个来自UNIX系统的典型PYTHONPATH:

设置PYTHONPATH = / usr / local / lib / python

命名空间和范围

变量是映射到对象的名称(标识符)。命名空间是变量名(键)及其对应对象(值)的字典。

Python语句可以访问本地命名空间和全局命名空间中的变量。如果本地变量和全局变量具有相同的名称,则局部变量会影响全局变量。

每个函数都有自己的本地命名空间。类方法遵循与普通功能相同的范围规则。

Python对于变量是本地还是全局都进行了有根据的猜测。它假定在函数中赋值的任何变量都是本地的。

因此,为了将值分配给函数中的全局变量,您必须首先使用全局语句。

语句全局VarName告诉Python VarName是一个全局变量。 Python停止搜索本地命名空间的变量。

例如,我们在全局命名空间中定义一个变量Money。在函数Money中,我们为Money赋值,因此Python将Money作为局部变量。但是,我们在设置之前访问了本地变量Money的值,因此会导致UnboundLocalError。取消注释全局语句来解决问题。

#!/ usr / bin / python

钱= 2000

def AddMoney():

   #取消注释以下行来修复代码:

   #全球金钱

   钱=钱+ 1

打印钱

AddMoney()

打印钱

dir()函数

dir()内置函数返回一个包含由模块定义的名称的字符串的排序列表。

该列表包含模块中定义的所有模块,变量和函数的名称。以下是一个简单的例子 –

#!/ usr / bin / python

#导入内置的模块数学

导入数学

content = dir(数学)

打印内容

当执行上述代码时,会产生以下结果 –

[‘__doc__’,’__file__’,’__name__’,’acos’,’asin’,’atan’

‘atan2’,’ceil’,’cos’,’cosh’,’degrees’,’e’,’exp’

‘fab’,’floor’,’fmod’,’frexp’,’hypot’,’ldexp’,’log’

‘log10’,’modf’,’pi’,’pow’,’弧度’,’sin’,’sinh’

‘sqrt’,’tan’,’tanh’]

这里,特殊字符串变量__name__是模块的名称,__file__是加载模块的文件名。

全局变量()和locals()函数 –

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

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

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

这两个函数的返回类型是字典。因此,可以使用keys()函数提取名称。

reload()函数

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

因此,如果要重新执行模块中的顶级代码,可以使用reload()函数。 reload()函数再次导入以前导入的模块。 reload()函数的语法是这样的 –

重新加载(module_name)

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

重新加载(你好)

Python中的软件包

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

考虑一个文件Pots.py可用在电话目录。该文件具有以下代码行 –

#!/ usr / bin / python

def Pots():

   打印“我是手机”

类似的方式,我们有另外两个文件具有与上述相同名称的不同功能 –

具有Isdn()函数的电话/ Isdn.py文件

具有功能G3()的电话/ G3.py文件

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

Phone / __ init__.py

要在导入电话时使所有功能可用,您需要在__init__.py中按照以下方式将明确的import语句:

从罐子进口锅

来自Isdn import Isdn

从G3进口G3

将这些行添加到__init__.py之后,当您导入电话包时,您可以使用所有这些类。

#!/ usr / bin / python

#现在导入您的手机包。

进口电话

Phone.Pots()

Phone.Isdn()

Phone.G3()

当执行上述代码时,会产生以下结果 –

我是锅电话

我是3G手机

我是ISDN电话

在上面的例子中,我们将每个文件中的单个函数作为示例,但是您可以在文件中保留多个函数。您也可以在这些文件中定义不同的Python类,然后可以从这些类中创建包。

我们在家庭作业中为Python和Python模块家庭作业提供专家帮助。我们的导师是为各级学生提供家庭作业帮助的专家。

Posted on March 31, 2017 in 蟒蛇

Share the Story

Back to Top
Share This