Python 模块

在本文中,您将学习在 Python 中创建和导入自定义模块,还会涉及使用内置模块的一些技术方法。

在本文中,您将学习在 Python 中创建和导入自定义模块,还会涉及使用内置模块的一些技术方法。

什么是模块?

模块主要用来划分不同类型的代码。尤其在大型项目中,可以将相同类型或者功能的代码归为一个模块。

模块可以方便的实现代码复用,当在需要用到外部模块的功能时,只需要导入相应的模块即可。

在 Python 中,一个模块就是指包含了一组函数的文件。例如,模块文件是 test.py,那么对应的模块名则是 test

创建模块

要创建模块,只需将所需的代码保存在扩展名为 .py 的文件。

创建模块文件 mymodule.py,里面包含了一个问候的函数。

def greeting(name):
  print("Hello, " + name)

您可以随意命名模块文件,但它必须使用 .py 文件扩展名。

使用模块

现在我们可以使用我们刚刚创建的模块了。只需要通过 import 语句导入刚刚创建的模块即可。

导入名为 mymodule 的模块,并调用 greeting 函数:

import mymodule

mymodule.greeting("Jonathan")

使用模块中的函数时,请使用语法:module_name.function_name

模块中的变量

模块可以包含函数,也可以包含各种类型的变量(数组、字典、对象等):

mymodule.py 文件中定义一个字典对象:

person1 = {
  "name": "John",
  "age": 36,
  "country": "Norway"
}

导入名为 mymodule 的模块,并访问 person1 字典:

import mymodule

a = mymodule.person1["age"]
print(a)

重命名模块

您可以在导入模块时使用 as 关键字创建模块的别名。

导入模块 mymodule 并命名为 mx

import mymodule as mx

a = mx.person1["age"]
print(a)

内置模块

Python 中有几个内置模块,您可以随时导入它们。

导入并使用 platform 模块:

import platform

x = platform.system()
print(x) # Windows

dir() 函数

Python 内置了一个全局函数 dir() 可以列出模块中的所有函数名(或变量名)。

列出属于平台模块的所有已定义名称:

import platform

x = dir(platform)
print(x)

输出:

['_Processor', '_WIN32_CLIENT_RELEASES', '_WIN32_SERVER_RELEASES', '__builtins__', '__cached__', '__copyright__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__version__', '_comparable_version', '_component_re', '_default_architecture', '_follow_symlinks', '_get_machine_win32', '_ironpython26_sys_version_parser', '_ironpython_sys_version_parser', '_java_getprop', '_libc_search', '_mac_ver_xml', '_node', '_norm_version', '_platform', '_platform_cache', '_pypy_sys_version_parser', '_sys_version', '_sys_version_cache', '_sys_version_parser', '_syscmd_file', '_syscmd_ver', '_uname_cache', '_unknown_as_blank', '_ver_output', '_ver_stages', 'architecture', 'collections', 'functools', 'itertools', 'java_ver', 'libc_ver', 'mac_ver', 'machine', 'node', 'os', 'platform', 'processor', 'python_branch', 'python_build', 'python_compiler', 'python_implementation', 'python_revision', 'python_version', 'python_version_tuple', 're', 'release', 'subprocess', 'sys', 'system', 'system_alias', 'uname', 'uname_result', 'version', 'win32_edition', 'win32_is_iot', 'win32_ver']

从模块导入

您可以使用 from 关键字从模块单独导入某个函数或变量。

mymodule 模块有一个函数和一个字典:

def greeting(name):
  print("Hello, " + name)

person1 = {
  "name": "John",
  "age": 36,
  "country": "Norway"
}

仅从模块导入 person1 字典:

from mymodule import person1

print (person1["age"])

使用 from 关键字导入的函数或者变量可以直接使用,而不需要使用模块名称。示例: person1["age"] ,不是 mymodule.person1["age"]