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"]